我有一个使用Docker for Mac的docker-compose项目,它会在我开机时自动启动。
通常我会使用docker-compose up -d
来启动该项目,但即使在关闭前执行docker-compose stop
,它仍会在开机时自动启动。
我不知道是否有特别的启用方法。如何禁用它?
我有一个使用Docker for Mac的docker-compose项目,它会在我开机时自动启动。
通常我会使用docker-compose up -d
来启动该项目,但即使在关闭前执行docker-compose stop
,它仍会在开机时自动启动。
我不知道是否有特别的启用方法。如何禁用它?
今天我遇到了一个问题,我的开发笔记本在启动时启动了所有的容器,因为在.yml文件中设置了restart: always
。
由于我不想更改.yml文件,所以我找到了一个方法(感谢Bobby),可以通过以下方式更改此设置:
docker update --restart=no <MY-CONTAINER-ID>
.yml
文件或整个项目时,这也非常有用 :P - JPGdocker inspect --format='{{.HostConfig.RestartPolicy.Name}}' <MY-CONTAINER-ID>
。 - yohosuffrestart: no
是默认模式。若你的 docker-compose 文件中有 restart: no
或 restart: unless-stopped
这些语句,启动系统时,只要 Docker daemon 存在,它就会重新启动容器。 详情
你需要将 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) 系统启动时启动容器,但会在此之后删除容器,而不是停止容器。
docker-compose down
,将销毁所有数据,最好的方法是像 #davey 所说的那样执行 docker update --restart=no <MY-CONTAINER-ID>
。 - Sham Fiorindocker update --restart=no <MY-CONTAINER-ID>
docker update --restart=no $(docker container ls -a -q)
docker container ls -a
用于检查容器的名称和ID,
以及 docker inspect --format='{{.HostConfig.RestartPolicy.Name}}' <nameOrId>
用于检查它们当前的设置。 - undefinedrestart: 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
针对 @Hudson Van-dal 的评论,如果你真的在使用compose,这里有一个补充。当你在.yml compose文件目录中时,你可以使用以下命令:
docker update --restart=no $(docker compose ps -a -q)
它将仅过滤出在此特定组合下运行的容器,而不是所有可用容器。
restart: always
。如果有的话,请尝试将其更改为restart: unless-stopped
。 - Rickkwarestart: always
。我会进行更改并观察结果。 - Harald Nordgrenrestart: unless-stopped
会导致docker在请求(ps
,stop
,kill
)超时。重启仍然会启动所有容器! - Harald Nordgrendocker-compose stop
是否有效,但对我来说docker-compose down
非常有效。我倾向于将其与--rmi local
一起配对使用,但请小心。 - Jack M.