对已经启动的 docker 容器修改开机自动启动
March 27th 2025, 10:21:20 am
You
对已经启动的 docker 容器修改开机自动启动
ChatGPT
可以使用 docker update 命令修改已经运行的 Docker 容器的 开机自启 设置。
修改 Docker 容器的开机自启策略
1. 修改单个容器的重启策略
bash
CopyEdit
docker update --restart=always 容器ID或名称
-
no:容器不会自动重启(默认)
-
always:无论退出原因如何,Docker 守护进程重启时,容器都会重新启动
-
unless-stopped:与 always 类似,但如果容器被手动停止,则不会重启
-
on-failure[:最大重试次数]:仅当容器异常退出(非 0 退出码)时才重启
示例:
bash
CopyEdit
docker update --restart=unless-stopped my_container
2. 让所有已运行的容器在开机时自动启动
如果希望 所有当前运行的容器 在 Docker 启动时恢复运行,可以批量设置:
bash
CopyEdit
docker update --restart=always $(docker ps -q)
3. 验证容器的 restart 策略
可以用以下命令检查容器的 RestartPolicy:
bash
CopyEdit
docker inspect -f '{{.HostConfig.RestartPolicy.Name}}' 容器ID或名称
示例:
bash
CopyEdit
docker inspect -f '{{.HostConfig.RestartPolicy.Name}}' my_container
如果返回 always,说明设置成功。
4. 另一种方法:docker-compose 修改 restart 方式
如果使用 docker-compose.yml,可以修改 restart 选项:
yaml
CopyEdit
version: '3'
services:
my_service:
image: my_image
restart: always
然后重新加载:
bash
CopyEdit
docker-compose up -d
这样,容器每次开机都会自动启动。
总结
-
docker update --restart=always 容器ID 可以直接修改已运行的容器
-
docker update --restart=always $(docker ps -q) 批量修改
-
docker inspect 检查修改是否生效
-
docker-compose.yml 中的 restart 也可以控制开机自启
这样你就可以修改已经运行的 Docker 容器,使其开机时自动启动 🚀