如何阻止所有Docker容器在系统启动时自动重启?
强制禁用所有Docker容器开机自动启动(Linux systemd环境)
方法一:单次生效(仅下次开机不启动)
适合临时需求,后续可按需恢复指定容器的重启策略:
- 停止所有正在运行的容器:
docker stop $(docker ps -aq) - 将所有容器的重启策略统一设置为
no(Docker默认的不自动启动策略):docker update --restart=no $(docker ps -aq)
执行后,下次开机时无论容器之前配置了什么重启策略,都不会自动启动。若之后需要让特定容器自动启动,单独执行docker update --restart=always <容器ID/名称>即可。
方法二:永久生效(每次开机自动禁用所有容器启动)
适合长期需求,无需每次手动操作:
- 创建或编辑Docker的systemd覆盖配置文件(避免修改默认配置被版本升级覆盖):
sudo systemctl edit docker.service - 在打开的编辑器中添加以下内容,让Docker服务启动后自动批量修改所有容器的重启策略:
[Service] ExecStartPost=/usr/bin/docker update --restart=no $(docker ps -aq) - 重新加载systemd配置并重启Docker服务使设置生效:
sudo systemctl daemon-reload sudo systemctl restart docker
此后每次开机Docker服务启动后,都会自动确保所有容器不会自行启动。
额外选项:临时禁用Docker服务开机启动
如果希望连带Docker服务本身也不自动启动(所有容器自然不会启动),可执行:
sudo systemctl disable docker.service docker.socket
需要使用Docker时再手动启动服务:sudo systemctl start docker.service
内容的提问来源于stack exchange,提问作者Matthew D. Scholefield
相关产品推荐
相关产品推荐

