Docker nginx容器启动后配置文件的修改获取有些不便,之前是通过cp方式来进行替换加载,现在使用Volume实现裙带机制修改文件内容。下面主要分为HTML、Log、Config三个文件挂载。
创建volume
1
2
3docker volume create myNginxLog #日志信息
docker volume create myNginxConfig #配置信息
docker volume create myNginxHtml #网站信息
创建容器
1
docker run -d -it -p 8088:80 --name=mynginx -v myNginxHtml:/usr/share/nginx/html -v myNginxConfig:/etc/nginx -v myNginxLog:/var/log/nginx nginx
查看各volume在宿主机存在位置
以myNginxConfig为例:
1
docker volume inspect myNginxConfig
我测试输出为:
1
2
3
4
5
6
7
8{
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/myNginxConfig/_data",
"Name": "myNginxConfig",
"Options": {},
"Scope": "local"
}在/var/lib/docker/volumes/myNginxConfig/_data 文件下就可以找到相关文件夹
1
2
3
4
5pwd
/var/lib/docker/volumes/myNginxConfig/_data
ls
conf.d koi-utf mime.types nginx.conf uwsgi_params
fastcgi_params koi-win modules scgi_params win-utf修改default.conf
- 进入/var/lib/docker/volumes/myNginxConfig/_data/conf.d
1
2
3
4
5cd /var/lib/docker/volumes/myNginxConfig/_data/conf.d
ls
default.conf
vim default.conf
按照个人实际项目情况修改配置文件,并且保存退出。查看容器中default.conf配置文件
1
2
3
4docker exec -it 容器id bash
cd /etc/nginx/conf.d
cat default.conf
#此时发现通过宿主机修改的配置文件成功同步到容器中容器重新加载配置文件(支持热部署,不用重启容器奥)
1
docker exec -i [nginx容器名/id] nginx -s reload
OK 大功告成!