Files
chill_notes/Docker/CentOS7设置Docker开机自启动.md
2026-04-21 20:16:50 +08:00

72 lines
1.8 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CentOS 7 设置 Docker 开机自启动
## 1. 设置 Docker 开机启动
```bash
# 启用 Docker 服务开机自启
systemctl enable docker
# 验证设置
systemctl is-enabled docker
```
## 2. 设置容器自动重启
### 方式一:创建容器时指定
```bash
docker run -d --restart=always --name <容器名> <镜像>
```
`--restart` 参数选项:
| 值 | 说明 |
|----|------|
| `no` | 容器退出时不重启(默认) |
| `on-failure` | 仅在非 0 状态退出时重启 |
| `on-failure:3` | 非 0 退出时最多重启 3 次 |
| `always` | 无论退出状态如何都重启 |
| `unless-stopped` | 除非手动停止,否则始终重启 |
### 方式二:修改已有容器
```bash
# 更新容器重启策略
docker update --restart=always <容器ID或名称>
# 示例
docker update --restart=always my-redis
docker update --restart=always 8a3c5f7d2e91
```
## 3. 批量设置所有容器
```bash
# 将所有容器设置为自动重启
docker update --restart=always $(docker ps -aq)
```
## 4. 验证配置
```bash
# 查看容器重启策略
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`
---
> 参考:[Docker 官方文档 - 重启策略](https://docs.docker.com/config/containers/start-containers-automatically/)