1.8 KiB
Executable File
1.8 KiB
Executable File
CentOS 7 设置 Docker 开机自启动
1. 设置 Docker 开机启动
# 启用 Docker 服务开机自启
systemctl enable docker
# 验证设置
systemctl is-enabled docker
2. 设置容器自动重启
方式一:创建容器时指定
docker run -d --restart=always --name <容器名> <镜像>
--restart 参数选项:
| 值 | 说明 |
|---|---|
no |
容器退出时不重启(默认) |
on-failure |
仅在非 0 状态退出时重启 |
on-failure:3 |
非 0 退出时最多重启 3 次 |
always |
无论退出状态如何都重启 |
unless-stopped |
除非手动停止,否则始终重启 |
方式二:修改已有容器
# 更新容器重启策略
docker update --restart=always <容器ID或名称>
# 示例
docker update --restart=always my-redis
docker update --restart=always 8a3c5f7d2e91
3. 批量设置所有容器
# 将所有容器设置为自动重启
docker update --restart=always $(docker ps -aq)
4. 验证配置
# 查看容器重启策略
docker inspect <容器名> --format='{{.HostConfig.RestartPolicy.Name}}'
# 查看所有容器的重启策略
docker ps --format '{{.Names}}: {{.Status}}'
常见问题
Q:容器内应用崩溃退出后,Docker 会重启容器吗?
A:--restart=always 会在容器退出时自动重启。但如果容器内应用不断崩溃,Docker 会不断重启,可能造成死循环。建议使用健康检查机制。
Q:服务器重启后,容器启动顺序重要吗?
A:如果容器有依赖关系(如 Web 应用依赖数据库),需要考虑启动顺序。可使用 docker-compose 的 depends_on 或设置重启策略的 condition。