如何重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]