https://blog.csdn.net/Pan_peter/article/details/128807946
因为java容器的运行需要访问mysql和redis容器,nginx容器需要访问java容器,所以需要创建一个他们能互相访问的网络。
创建一个叫做my-network的局域网,设置网段和网关。
sudo docker network create --subnet=172.18.0.0/16 --gateway=172.18.0.1 my-network
docker pull java:8
#基础镜像使用jdk1.8
FROM java:8
#作者
MAINTAINER pan
# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名
ADD winapp-admin.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
# 为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
#ENTRYPOINT ["nohup","java","-jar","/data/cat/ruoyi-admin.jar","&"]
#暴露port端口
EXPOSE 80
sudo docker build -t app:1.0 .
mkdir /home/winup/data/docker/mysql
mkdir /home/winup/data/docker/mysql/datadir
mkdir /home/winup/data/docker/mysql/conf
mkdir /home/winup/data/docker/mysql/log
sudo docker run --restart=always --network=my-network --ip 172.18.0.7 --name docker_mysql_57 -p 3306:3306 -v /home/winup/data/docker/mysql/datadir:/var/lib/mysql -v /home/winup/data/docker/mysql/conf:/etc/mysql/conf.d -v /home/winup/data/docker/mysql/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD='123456' -d mysql:5.7
mkdir /home/winup/data/docker/redis
mkdir /home/winup/data/docker/redis/data
sudo docker run --restart=always --network=my-network --ip 172.18.0.5 -d -v /home/winup/data/docker/redis/data:/data --name docker_redis -p 6379:6379 redis redis-server --requirepass "123456" --appendonly yes
sudo docker run --restart=always --network=my-network --ip 172.18.0.6 -p 28001:80 --name docker_winup_ui -v /home/winup/data/docker/ui/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/winup/data/docker/ui/conf/conf.d:/etc/nginx/conf.d -v /home/winup/data/docker/ui/log:/var/log/nginx -v /home/winup/data/docker/ui/html:/usr/share/nginx/html -d nginx:latest
sudo docker run --network=my-network --ip 172.18.0.8 --restart=always -d --name winup_app -p 28000:80 app:1.0