我有一个船坞式作曲。Yml文件包含4个容器:redis, postgres, API和worker。

在工作容器的开发过程中,我经常需要重新启动它以应用更改。有没有什么好方法可以在不重启其他容器的情况下重启单个容器(例如worker) ?


当前回答

这很简单:使用命令:

docker-compose restart worker

您可以设置在杀死容器之前等待停止的时间(以秒为单位)

docker-compose restart -t 30 worker

注意,这将重新启动容器,但不会重新构建它。如果您想应用更改,然后重新启动,请查看其他答案。

其他回答

在进行更改之后,您需要将更改拉入服务器,然后重新创建容器。如文档所示:

docker-compose pull worker && docker-compose up -d --no-deps worker

Pull worker将只将这个项目拉到服务器,而——no-deps将防止重新启动工作者容器所依赖的容器。

答案在这里讨论的是对docker-compose变化的反映。yml文件。

但是,如果我想将我在代码中所做的更改合并到一起,并且我相信这只有通过重建映像才能实现,并且我使用以下命令

1. Docker容器停止

docker stop container-id

2. Docker容器移除

docker rm container-id

3.Docker图像移除

docker rmi image-id

4. 重新组合容器

docker-compose up container-name

这很简单:使用命令:

docker-compose restart worker

您可以设置在杀死容器之前等待停止的时间(以秒为单位)

docker-compose restart -t 30 worker

注意,这将重新启动容器,但不会重新构建它。如果您想应用更改,然后重新启动,请查看其他答案。

简单的“docker”命令对“worker”容器一无所知。 使用这样的命令

Docker-compose -f Docker-compose。Yml重启工作

使用docker-compose文件重新启动服务

docker-compose -f [COMPOSE_FILE_NAME].yml restart [SERVICE_NAME]

用例#1:如果COMPOSE_FILE_NAME是docker-compose。Yml和服务是工人

docker-compose restart worker

用例#2:如果文件名是sample。Yml和服务是工人

docker-compose -f sample.yml restart worker

默认情况下,docker-compose查找docker-compose。如果我们运行docker-compose命令,那么我们可以用-f [FILE_NAME].yml标记指定文件名