我有一个使用Docker for Mac的docker-compose项目,当我启动计算机时会自动启动。
我通常使用docker-compose up -d
启动项目,但在关闭之前,甚至会在启动时再次运行docker-compose stop
。
我不知道具体启用此功能。我该如何禁用它?
答案 0 :(得分:16)
今天我遇到的问题是,当我启动我的开发笔记本电脑时启动所有容器,因为。{1}已在.yml文件中设置。
由于我不想触摸.yml文件,我只是发现(thx Bobby)如何通过以下方式更改此设置:
restart: always
答案 1 :(得分:5)
尝试使用docker-compose down
代替docker-compose stop
停止容器并删除由up创建的容器,网络,卷和图像。 网络和数量定义为外部永不删除。
停止运行容器而不删除它们。可以使用docker-compose start
重新启动它们。
答案 2 :(得分:2)
restart: no
是默认模式。您的docker-compose文件中有一行restart: no
或restart: unless-stopped
。这也意味着当你启动系统时,只要docker守护进程,它就会重新启动容器。 Details
您需要将restart
更改为no
或 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)系统启动时不要启动容器,除了:在此之后将删除容器,不停止。< / p>
答案 3 :(得分:1)
如果要停止特定容器,请使用以下命令:
docker update --restart=no <MY-CONTAINER-ID>
如果你想停止所有注册的容器,这是最好的选择:
docker update --restart=no $(docker container ls -a -q)
谢谢
答案 4 :(得分:0)
在设置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