docker-compose.yml中定义了服务范围。这些服务已经启动。我只需要重新构建其中一个,并在不启动其他服务的情况下启动它。
执行如下命令:
docker-compose up -d # run all services
docker-compose stop nginx # stop only one. but it is still running !!!
docker-compose build --no-cache nginx
docker-compose up -d --no-deps # link nginx to other services
最后,我得到了旧的nginx容器。
Docker-compose不会杀死所有正在运行的容器!
问题是:
$ docker-compose stop nginx
没有工作(你说它还在运行)。如果你无论如何都要重建它,你可以尝试杀死它:
$ docker-compose kill nginx
如果它仍然不工作,尝试直接用docker停止它:
$ docker stop nginx
或者删除它
$ docker rm -f nginx
如果这仍然不起作用,检查docker版本,您可能需要升级。
这可能是一个错误,你可以检查一个是否匹配你的系统/版本。以下是一些例子:
https://github.com/docker/docker/issues/10589
https://github.com/docker/docker/issues/12738
作为一种解决方案,您可以尝试终止该进程。
$ ps aux | grep docker
$ kill 225654 # example process id