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

Har*_*ren 24 autostart docker-compose docker-for-mac

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

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

我不知道具体实现这个.我该如何禁用它?

dav*_*vey 25

今天我遇到的问题是,当我启动我的开发笔记本电脑时启动所有容器,就像restart: always在.yml文件中设置的那样.

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

docker update --restart=no <MY-CONTAINER-ID>
Run Code Online (Sandbox Code Playgroud)


小智 13

如果要在停止特定容器后禁用自动启动,请使用以下命令:

docker update --restart=no <MY-CONTAINER-ID>
Run Code Online (Sandbox Code Playgroud)

如果您想将此设置应用于所有已注册的容器,这是最好的选择:

docker update --restart=no $(docker container ls -a -q)
Run Code Online (Sandbox Code Playgroud)

谢谢


van*_*102 10

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

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

停止运行容器而不删除它们。可以从重新开始docker-compose start

  • 这会导致意外删除结果。对于我来说,从头开始创建时间是20分钟,因此这不是一个选择。 (3认同)
  • 这将删除数据。在许多情况下可能是数据库,因此在许多情况下这可能不是一个好的解决方案。 (2认同)

Gri*_*ory 5

restart: no是默认模式。在docker-compose文件中有一行,带有restart: norestart: unless-stopped。这也意味着,当您引导系统时,只要docker daemon,它就会重新启动容器。详细信息
您需要更改restartnoon-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:
Run Code Online (Sandbox Code Playgroud)

同样,docker-compose down在大多数情况下,也会得到相同的结果-不要在(docker)系统启动时启动容器,除了:在此之后,容器将被删除,而不是停止。