我有一个船坞式作曲。Yml文件包含4个容器:redis, postgres, API和worker。
在工作容器的开发过程中,我经常需要重新启动它以应用更改。有没有什么好方法可以在不重启其他容器的情况下重启单个容器(例如worker) ?
我有一个船坞式作曲。Yml文件包含4个容器:redis, postgres, API和worker。
在工作容器的开发过程中,我经常需要重新启动它以应用更改。有没有什么好方法可以在不重启其他容器的情况下重启单个容器(例如worker) ?
当前回答
这很简单:使用命令:
docker-compose restart worker
您可以设置在杀死容器之前等待停止的时间(以秒为单位)
docker-compose restart -t 30 worker
注意,这将重新启动容器,但不会重新构建它。如果您想应用更改,然后重新启动,请查看其他答案。
其他回答
要重新启动一个更改的服务,以下是我执行的步骤:
docker-compose stop -t 1 worker
docker-compose build worker
docker-compose up --no-start worker
docker-compose start worker
答案在这里讨论的是对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-compose build worker && docker-compose restart worker
这同时实现了我的两个主要目标:
目标是单个工作者容器 在一行中重新构建和重新启动它
希望这能对大家有所帮助。
简单的“docker”命令对“worker”容器一无所知。 使用这样的命令
Docker-compose -f Docker-compose。Yml重启工作