如何重builddocker-compose.yml中的docker容器?

在docker-compose.yml中定义了服务的范围。 这些服务已经开始。 我只需要重build其中一个,并启动它,而不用其他服务。 我运行以下命令:

docker-compose up -d # run all services docker-compose stop nginx # stop only one. but it still running !!! docker-compose build --no-cache nginx docker-compose up -d --no-deps # link nginx to other services 

最后我得到了旧的nginx容器。 顺便docker-compose不会杀死所有正在运行的容器!

docker工人组成

 $docker-compose up -d --no-deps --build <service_name> 

– no-deps – 不要启动链接的服务。

–build – 在启动容器之前build立图像。

这应该解决你的问题:

 docker-compose ps # lists all services (id, name) docker-compose stop <id/name> #this will stop only the selected container docker-compose rm <id/name> # this will remove the docker container permanently docker-compose up # builds/rebuilds all not already built container 

问题是:

 $ docker-compose stop nginx 

没有工作(你说它还在运行)。 如果你要重build它,你可以尝试杀死它:

 $ 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 

只要:

 $ docker-compose restart [yml_service_name] 
Interesting Posts