阻止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