Update from Sync Service
This commit is contained in:
71
Docker/CentOS 7 设置 Docker 开机自启动.md
Executable file
71
Docker/CentOS 7 设置 Docker 开机自启动.md
Executable file
@@ -0,0 +1,71 @@
|
||||
# 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/)
|
||||
Reference in New Issue
Block a user