返回备忘录列表

对已经启动的 docker 容器修改开机自动启动

更新于

公开 · 所有人可见

对已经启动的 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 容器,使其开机时自动启动 🚀