我有一个使用 Docker for Mac 的 docker-compose 项目,它会在我启动计算机时自动启动。
我通常使用 启动项目docker-compose up -d
,但即使docker-compose stop
在关闭之前运行也会在启动时再次启动它。
我不知道专门启用此功能。我怎样才能禁用它?
我有一个使用 Docker for Mac 的 docker-compose 项目,它会在我启动计算机时自动启动。
我通常使用 启动项目docker-compose up -d
,但即使docker-compose stop
在关闭之前运行也会在启动时再次启动它。
我不知道专门启用此功能。我怎样才能禁用它?
今天我遇到了同样的问题,当我启动我的开发笔记本电脑时,所有容器都启动了,就像restart: always
在 .yml 文件中设置的那样。
由于我不想接触 .yml 文件,我刚刚发现(感谢 Bobby)如何通过以下方式更改此设置:
docker update --restart=no <MY-CONTAINER-ID>
restart: no
是默认模式。在您的 docker-compose 文件中有一行带有restart: no
or restart: unless-stopped
。这也意味着当您启动系统时,只要 docker 守护程序,它就会再次(重新)启动容器。详细信息
您需要更改restart
为no
or on-failure
,例如:
version: '2.1'
services:
backend:
restart: on-failure
build:
args:
USER_ID: ${USER_ID}
context: codebase/namp-backend
dockerfile: Dockerfile.dev
ports:
- "5001:5001"
- "5851:5851"
volumes:
- ./codebase/namp-backend:/codebase
environment:
同样docker-compose down
对于大多数情况,给您相同的结果 - 在(docker)系统启动时不要启动容器,除了:容器将在此之后被删除,而不是停止。
如果要停止特定容器,请使用以下命令:
docker update --restart=no <MY-CONTAINER-ID>
如果要停止所有已注册的容器,这是最好的选择:
docker update --restart=no $(docker container ls -a -q)
谢谢
除了设置restart: unless-stopped
,删除现有容器并重新创建它们。
docker-compose down
docker-compose up -d
现在,它将按预期工作:
docker-compose stop
sudo service docker restart
docker-compose ps
# should NOT HAVE containers running
docker-compose up -d
sudo service docker restart
docker-compose ps
# should HAVE containers running