禁用docker-compose项目的自动启动

时间:2016-12-08 09:46:20

标签: docker-compose autostart docker-for-mac

我有一个使用Docker for Mac的docker-compose项目,当我启动计算机时会自动启动。

我通常使用docker-compose up -d启动项目,但在关闭之前,甚至会在启动时再次运行docker-compose stop

我不知道具体启用此功能。我该如何禁用它?

5 个答案:

答案 0 :(得分:16)

今天我遇到的问题是,当我启动我的开发笔记本电脑时启动所有容器,因为。{1}已在.yml文件中设置。

由于我不想触摸.yml文件,我只是发现(thx Bobby)如何通过以下方式更改此设置:

restart: always

答案 1 :(得分:5)

尝试使用docker-compose down代替docker-compose stop

down

停止容器并删除由up创建的容器,网络,卷和图像。 网络和数量定义为外部永不删除

stop

停止运行容器而不删除它们。可以使用docker-compose start重新启动它们。

答案 2 :(得分:2)

restart: no是默认模式。您的docker-compose文件中有一行restart: norestart: 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