Docker相关使用记录
docker仓库
https://hub.docker.com/search?type=image&q=
Centos7 安装 Docker
以下命令均以root权限执行
卸载docker旧版本
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
安装相关工具类
yum install -y yum-utils device-mapper-persistent-data lvm2
配置docker仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
aliyun的源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum install docker-ce
启动docker
systemctl start docker
验证docker
docker run hello-world
设置开机自启
chkconfig docker on
配置163镜像与存储目录
vim /etc/docker/daemon.conf
registry-mirrors 为镜像地址
graph 为存储目录 建议不要使用默认的 否则空间会不够用
{
"registry-mirrors": [
"https://xy82swcf.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com"
"graph": "/usr/local/docker"
]
}
systemctl daemon-reload
systemctl restart docker
安装docker-compose
选择自己想要安装的版本 修改以下语句版本号
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
授权
chmod +x /usr/local/bin/docker-compose
检查版本
docker-compose -version
JAVA项目
安装JDK1.8
安装镜像
1、搜索网址: https://hub.docker.com/
2、docker中搜索: docker search jdk / java
3、安装JDK1.8:docker pull java:8u111-jdk 或者 docker pull openjdk:8
docker pull java:8u111-jre-alpine
安装JRE1.8
docker pull java:8u111-jre-alpine
编辑DockerFile文件
FROM java:8u111-jre-alpine
RUN mkdir -p /ins
RUN mkdir -p /ins/lib/
RUN mkdir -p /ins/logs/
#COPY /lib /ins/lib/
#COPY *.jar /ins/ROOT.jar
ENV SERVER_PORT=8080
EXPOSE ${SERVER_PORT}
#图片生成字体库
#RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/* && mkfontscale && mkfontdir && fc-cache
#CMD java -Dloader.path="lib/" -jar app-pc.jar --spring.profiles.active=test
ENTRYPOINT ["java", "-Dloader.path=/ins/lib/", "-jar","/ins/ROOT.jar", "--spring.profiles.active=prod"]
docker 构造
docker build -t ins:latest -f InsAgencyDockerfile .
docker 运行
#docker run -d --name 自定义 -p 容器端口:宿主机端口 -v 宿主机日志:容器日志 镜像ID 挂载的jar包要对应
#docker run -d --name ins1 -p 8080:8080 -v /usr/local/docker/j/logs:/logs/ aaa:0.0.1
docker run -it --name ins -p 8080:8080 --restart=always -v /usr/local/java/insAgency:/ins -v /usr/local/java/insAgency/logs:/logs -v /etc/localtime:/etc/localtime -d ins:latest
进入
#ins 对应的运行项目名或ID
sudo docker exec -it ins /bin/sh
Redis
安装 版本 6.0
docker pull redis:6.0
运行
docker run -p 6379:6379 --name redis -v /usr/local/dockerData/redis/data:/data -v /usr/local/dockerData/redis/conf/redis.conf:/etc/redis/redis.conf --restart=always -d redis:6.0 redis-server /etc/redis/redis.conf
使用
yml操作
docker-compose -f xxxx.yml up -d
启动mysql
docker run -p 3306:3306 --name mysql:8.0.29 -e MYSQL_ROOT_PASSWORD=root -d mysql_001
停止实例
docker stop 实例名
启动项目
docker run -itd(后台运行) --name spring02(容器名字) -p 8082(映射地址):8081(本机地址) spring:2.0(镜像版本号)
docker run -itd --name nginx -p 80:80 nginx:1.22.1
通过外网访问
查看所有开放的端口
firewall-cmd --list-all
开启端口
sudo firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
常见问题
Docker之WARNING: IPv4 forwarding is disabled. Networking will not work(虚拟机配置网络异常:IPv4)解决方案
vim /etc/sysctl.conf
#配置转发
net.ipv4.ip_forward=1
#重启服务,让配置生效
systemctl restart network
#查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功
sysctl net.ipv4.ip_forward