在使用Docker Compose进行管理时,需要更新文件
比如说,有时候我们想要更新并使得nginx的配置文件生效。
定义前提例
version: '2'
services:
nginx:
build: ./nginx
container_name: nginx
ports:
- 80:80
(以下略)
FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf
EXPOSE 80 443
$ docker-compose -p foo up -d
当使用-p foo选项时,图像名称、网络名称和卷名称会以foo_作为前缀添加。
Docker命令
$ docker cp default.conf nginx:/etc/nginx/conf.d/default.conf
$ docker exec nginx nginx -s reload
当然,即使使用Docker Compose 的话也可以通过上述方法进行更新和部署,不过使用Docker Compose 的功能可能更好呢,这个意思吧?
docker-compose命令
docker-compose -p foo build nginx
docker-compose -p foo up -d nginx
然后会显示”Recreating nginx”。它仅重新创建nginx镜像,并创建一个新的容器来替换现有容器。
这样一来,更新后的default.conf在镜像中得到了体现,而且如果已经在使用Docker Compose,那么使用这种方式可能更好一些呢?
请注意
只要重新创建容器,我觉得nginx会一瞬间停止,如果那会造成问题的话,就不能使用这种方法了。这种情况下似乎只能使用docker命令的方式?