Answers:
您可以使用该--restart=unless-stopped
选项(如@Shibashis所述),或更新重启策略(这需要docker 1.11或更高版本);
请参阅文档docker update
以及Docker重新启动策略。
docker update --restart=no my-container
更新现有容器的重启策略(my-container
)
使用以下禁用所有自动重启(守护程序)容器。
docker update --restart=no $(docker ps -a -q)
使用以下命令禁用重新启动SINGLE容器。
docker update --restart=no the-container-you-want-to-disable-restart
理性:
Docker提供重启策略来控制您的容器在退出时还是在Docker重新启动时自动启动。当Docker运行关键服务时,这通常非常有用。
笔记
如果您使用的是docker-compose,可能会很有用。
restart no是默认的重新启动策略,在任何情况下都不会重新启动容器。如果指定了always,则容器将始终重新启动。如果退出代码指示失败时错误,则失败时策略将重新启动容器。
restart: "no"
restart: always
restart: on-failure
restart: unless-stopped
restart: always
如果您有一群重新启动容器的容器,则无论重新启动选项如何,该群都会重新启动您停止或运行的所有容器。这是一个功能,而不是错误。
确保您没有运行忘记的服务:
docker service ls
然后,您可以停止服务
docker service rm <service id discovered with previous command>
ls
结果出错Error response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.
docker update --restart=no $(docker ps -a -q)
更新所有容器:-)