阻止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的容器?),我不需要这四个容器自动启动了?

使用docker stop [container_id]来停止每个正在运行的容器。 他们不应该在下一次重新启动docker守护进程时启动备份。

将来,当你启动容器时,确保当你调用--restart docker run你不会传递--restart标志。 如果您使用的是docker compose,请确保从docker-compose.yml文件中省略“restart”选项。

从文档:

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

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

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

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

始终 – 始终重新启动容器,如果它停止。

以下示例启动一个Redis容器并将其configuration为始终重新启动,除非它被明确停止或重新启动Docker。

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

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