背景:MySQL数据库运行在宿主机上(Linux)
需求:Redis、服务、页面分别运行在独立的docker中,并处于同一网络,容器内部重要目录要挂载在物理目录,保证数据安全
方法:
一、设置网络环境
1、初始化Docker Swarm
docker swarm init
2、创建网段(mynet)
docker network create -d overlay mynet --attachable
3、查看列表,确认创建结果
docker network list
二、创建Redis运行容器
1、拉取Redis镜像
docker pull redis
2、创建Redis运行环境容器(myredis),并建立目录映射关系,设置访问密码
docker run -dit --network=mynet --name=myredis -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime redis --requirepass "66666666"
3、运行容器
docker start myredis
三、创建服务运行容器(端口不暴露,接口安全)
1、拉取JDK镜像
docker pull jdk
2、创建服务运行环境容器,并建立目录映射关系
docker run -dit --network=mynet --name=myserver -v /data6/myproject/server:/server -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /data6/myproject/files:/files jdk
3、运行容器
docker start myserver
四、创建页面运行容器
1、拉取Nginx镜像
docker pull nginx
2、创建服务运行环境容器,并建立目录映射关系
docker run -dit --network=mynet --name=myweb -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -p 8080:80 -v /data6/myproject/web/:/web nginx
3、运行容器
docker start myweb
4、替代配置文件
用自己的default.conf替换【/etc/nginx/conf.d/】下的default.conf
5、重启容器
docker restart myweb