docker容器的自启动策略

1 Docker自启动策略设置

Docker容器的自启动模式主要由--restart策略控制,这个策略定义了在什么情况下容器应该自动重启。以下是Docker中可用的几种自启动模式:

  1. no:

    这是默认值。容器不会在任何情况下自动重启。如果容器停止,无论是正常退出还是异常终止,都不会自动重启。

  2. on-failure:

    如果容器因为一个失败(非零退出码)而终止,Docker守护进程将尝试重新启动容器。这对于那些因错误而意外停止的容器很有用,但不适用于那些正常退出的容器。

  3. always:

    无论容器为何停止,Docker守护进程都会尝试重新启动容器。即使容器是被用户手动停止的,守护进程在重启时也会尝试再次启动容器,除非守护进程本身也被停止或重启。

  4. unless-stopped:

    类似于always,但容器在Docker守护进程重启后不会重新启动,如果容器在守护进程重启前已被手动停止的话。这意味着容器将保持其停止状态,直到被手动启动。

你可以通过以下命令来设置或更新容器的重启策略:

  • 当创建容器时直接设置:

    复制代码
    docker run --restart=<policy> <other-options> <image>
  • 更新已存在的容器的重启策略:

    复制代码
    docker update --restart=<policy> <container-name-or-id>

请替换<policy>为上述四种策略之一,并将<container-name-or-id>替换为你想要操作的容器的名称或ID。

2 查看已经运行的容器的自启动策略

要查看现有Docker容器的重启策略,你可以使用docker inspect命令,该命令提供容器的详细配置信息,包括其重启策略。下面是如何使用此命令来查看容器重启策略的步骤:

  1. 首先,打开终端或命令行界面。

  2. 然后,运行以下命令,将<container-name-or-id>替换为你要检查的容器的名称或ID:

    bash 复制代码
    docker inspect --format='{{.HostConfig.RestartPolicy.Name}}' <container-name-or-id>

    这将输出容器的重启策略,如no、on-failure、always或unless-stopped。

另外,你也可以使用docker container inspect命令(注意使用container子命令),并且格式化输出以直接查看重启策略:

bash 复制代码
docker container inspect --format '{{.HostConfig.RestartPolicy.Name}}' <container-name-or-id>
相关推荐
java_logo21 小时前
Docker 部署 DeepSeek Harness(moelin):轻松搭建带登录的本地 AI Agent 平台
运维·docker·容器·ai agent·deepseek·harness·轩辕镜像
xbzb1 天前
容器 IP 每次重建都变?docker network 五种模式与自定义网桥固定地址
网络·docker·容器·ip·network·固定
打工仔折腾 AI1 天前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
xbzb1 天前
自建镜像仓库:registry 一条命令 + harbor 部署、授权、跨库同步与卸载
docker·harbor·镜像·仓库·同步·registry
wz97542 天前
Docker 从 systemd 托管容器、overlay2 存储驱动到 Compose 多容器实战
spring cloud·docker·eureka
新*2 天前
ES 7.17 三节点 Docker 集群接入 IK 自定义词典:一次从丢插件到热更新的完整排障
运维·elasticsearch·docker·中文分词·ik分词
小白的码BUG之路2 天前
Jenkins -- gitee+docker+harbor+k8s 部署项目
docker·gitee·jenkins
AlfredZhao2 天前
Docker Compose 平滑切换环境变量文件,容器配置不残留
docker
duansamve3 天前
Python3+Flask+PostgreSQL18+Vue3项目生产环境用docker如何部署?
python·docker·flask
mengge.cloud3 天前
prometheus+k8s+弹性伸缩,综合项目
云原生·容器·kubernetes·prometheus