【docker】--容器管理
文章目录
- 容器重启
- --restart` 参数选项及作用
- **对比 `always` 和 `unless-stopped`**
- **如何查看容器的重启策略?**
容器重启
–restart` 参数选项及作用
重启策略
no
:不重启(默认)。on-failure
:失败时重启(可限制次数)。always
:总是重启(除非手动停止)。unless-stopped
:总是重启,但手动停止后不再启动。
docker run --restart=<策略> <镜像>docker run --restart no nginx
docker run --restart always nginx
docker run --restart unless-stopped nginx
docker run -id --name policy_on-failure --restart on-failure nginx
docker run -id --name policy_on-failure2 --restart on-failure:2 nginx
参数值 | 作用 | 适用场景 |
---|---|---|
no (默认) | 不自动重启,容器退出后保持停止状态 | 临时测试或不需要自动恢复的任务 |
on-failure[:max-retries] | 仅在非 0 状态退出时重启(可设置最大重试次数) | 需要容错但避免无限重启的任务(如脚本任务) |
always | 无论退出状态如何,总是重启(除非手动停止) | 长期运行的服务(如 Web 服务器、数据库) |
unless-stopped | 总是重启,除非用户显式停止容器(重启 Docker 后仍生效) | 需要持久化运行的服务(类似 always ,但更智能) |
注意:
假如 on-failure不设置最大重启次数的话 就等效于always
对比 always
和 unless-stopped
场景 | always | unless-stopped |
---|---|---|
手动停止后 Docker 重启 | 容器会重新启动 | 不会重新启动 |
异常退出后 | 总是重启 | 总是重启 |
适用场景 | 必须强制运行的服务 | 允许手动停止的服务 |
如何查看容器的重启策略?
使用 docker inspect
查看:
# HostConfig
# 查看重启次数
docker inspect --format='{{.RestartCount}}' <容器名>
# 查看重启策略和 可最大重启次数
docker inspect --format='{{.HostConfig.RestartPolicy}}' <容器名>
# 查看重启策略
docker inspect --format='{{.HostConfig.RestartPolicy.Name}}' <容器名>
# 查看能最大重启次数
docker inspect --format='{{.HostConfig.RestartPolicy.MaximumRetryCount}}' <容器名>