restart: unless-stopped
时间: 2025-06-24 22:36:51 浏览: 14
### Docker Restart Policy `unless-stopped` 配置说明
Docker 提供了多种容器重启策略(Restart Policies),其中 `--restart=unless-stopped` 是一种较为灵活的选择。该策略的核心在于,在大多数情况下,容器都会自动重启,但在特定条件下可以由用户手动干预来阻止其自动重启。
#### 配置说明
- **基本功能**: 当容器因崩溃或其他原因退出时,或者当 Docker 守护进程重启时,容器会被自动启动[^2]。
- **例外情况**: 如果容器是通过命令(如 `docker stop` 或其他显式的停止操作)被手动停止的,则在后续 Docker 守护进程重启时,该容器不会自动恢复运行。
这种设计使得管理员可以在需要的时候完全控制容器的状态,而不必担心意外的自动重启干扰到维护工作或调试过程。
```bash
docker run -d \
--name=my-container \
--restart unless-stopped \
my-image-name
```
以上命令创建了一个名为 `my-container` 的容器,并设置了 `unless-stopped` 的重启策略[^4]。
---
### 使用场景分析
1. **日常运维中的灵活性需求**
对于一些需要定期维护的服务来说,`unless-stopped` 可以提供更大的灵活性。例如,数据库服务器可能需要周期性的备份或升级,此时可以通过 `docker stop` 手动暂停服务,而无需担心这些停机会因为自动重启机制而导致失败[^2]。
2. **开发环境下的测试与调试**
开发人员经常需要频繁地修改镜像内容并重新部署容器。在这种环境下,使用 `unless-stopped` 能够让开发者轻松地关闭不需要继续运行的实例,同时保留默认的高可用性保障。
3. **生产环境中部分关键组件管理**
生产系统中并非所有的微服务都需要全天候无间断运行。比如日志收集工具、监控代理等辅助型应用就可以采用这样的策略——既保证它们大部分时间处于活动状态,又允许紧急状况下快速关停而不受制于自动化流程的影响[^2]。
---
### 特殊注意事项
尽管 `unless-stopped` 很实用,但也存在几个需要注意的地方:
- **误用风险**: 如果不小心执行了一次 `docker stop` 操作却忘记再次启动对应容器的话,可能会导致一段时间内服务不可用的情况发生。
- **与其他策略对比**: 相较于 `always` 策略而言,虽然提供了更多的人工介入可能性,但对于追求极致可靠性和最少人为干涉的应用场合并不适合;而对于那些偶尔才需要用到的手动调整动作,则显得更加贴合实际需求。
---
阅读全文
相关推荐



















