阻止Docker容器在启动时存在

时间:2017-07-31 18:54:36

标签: docker

每当我在Mac上启动Docker时,都有四个容器可以自动启动。

$ docker ps

    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

//starts docker, makes tea    

$ docker ps
CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS              PORTS                                                                         NAMES
d78483fa7f27        magento/magento2devbox-web:latest   "/usr/local/bin/en..."   4 weeks ago         Up 5 minutes        5000/tcp, 9000/tcp, 44100/tcp, 0.0.0.0:32774->22/tcp, 0.0.0.0:32773->80/tcp   magento2devbox_web_03b003abaeb68eadd315c2e4763d0326
01f62a720e40        mysql:5.6                           "docker-entrypoint..."   4 weeks ago         Up 5 minutes        0.0.0.0:32772->3306/tcp                                                       magento2devbox_db_03b003abaeb68eadd315c2e4763d0326
005e0708d8f7        magento/magento2devbox-web:latest   "/usr/local/bin/en..."   6 months ago        Up 5 minutes        5000/tcp, 9000/tcp, 44100/tcp, 0.0.0.0:32770->22/tcp, 0.0.0.0:32769->80/tcp   magento2devbox_web_258e08743d8e54a4b3e6acfd3b2d7159
00b38cf0fdb9        mysql:5.6                           "docker-entrypoint..."   6 months ago        Up 5 minutes        0.0.0.0:32768->3306/tcp                                                       magento2devbox_db_258e08743d8e54a4b3e6acfd3b2d715

我如何判断(Docker?容器?)我不再需要这四个容器自动启动了?

2 个答案:

答案 0 :(得分:2)

使用docker inspect NAME|ID检查这些容器的重新启动策略。 如果它是alwayson-failure,那么您有解释。

要更改重启策略,请使用docker update --restart <new policy>

这两个命令将所有正在运行的容器的重启策略设置为no,然后将其全部杀死(确保在执行此操作之前了解此内容):

docker update `docker ps -q` --restart no
docker kill `docker ps -q`

然后,重新启动docker守护程序,您应该不会从docker ps中看到任何内容。

答案 1 :(得分:1)

使用docker stop [container_id]停止每个正在运行的容器。它们不应该在您下次重新启动docker守护程序时重新启动。

将来,当您启动容器时,请确保在致电docker run时,您没有传递--restart标志。如果你正在使用docker compose,请务必省略“重启”。您的docker-compose.yml文件中的选项。

来自文档:

  

要为容器配置重新启动策略,请在使用docker run命令时使用--restart标志。 --restart标志的值可以是以下任何一种:

     

否 - 不要自动重启容器。 (默认)

     

on-failure - 如果容器由于错误而退出,则重新启动容器,该错误显示为非零退出代码。

     

除非 - 停止 - 重新启动容器,除非它被明确停止或Docker本身被停止或重新启动。

     

始终 - 如果容器停止,请始终重启容器。

     

以下示例启动Redis容器并将其配置为始终重新启动,除非明确停止或重新启动Docker。

     

$ docker run -dit --restart unless-stopped redis

https://docs.docker.com/engine/admin/start-containers-automatically/#use-a-restart-policy