【Docker】容器自启动

本文详细介绍了Docker的重启策略,包括如何配置容器自动重启、各种重启策略的区别以及重启策略的生效条件。同时,对比了重启策略与--live-restore标志的不同之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

restart policy (重启策略)

  Docker 提供了 restart policy 机制(重启策略),可以在容器或者 Docker 重启时控制器能够自启动。这种重启策略可以保证相关容器按照正确顺序启动。Docker 建议使用重启策略,并避免使用流程管理器启动容器。

  重启策略跟 dockerd 命令的 --live-restore 标志不同。使用 --live-restore 标志可以在 Docker 升级的时候保证容器继续运行,但是网络以及用户终端输入会被终端。

使用重启策略

  要为容器配置重启策略,使用 docker run 命令的时候添加 --restart 标志。--restart 标志有多个 value 可选

标志描述
no不自动重启容器(默认值)
on-failure如果容器由于错误而退出,则将其重新启动,非零退出代码表示错误
unless-stopped在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always只要容器停止,就重新启动

重启策略详情

  • 重启策略只在容器启动成功后生效。这种情况下,成功启动的意思容器至少运行 10秒以上,并且 Docker 已经开始监控它。这可以避免没有成功启动的容器陷入 restart 的死循环。
  • 如果手动的停止容器,它将被重启策略忽略,直到 Docker 守护进程重启或手动重启,这是为了避免重启循环的另一次尝试。
  • 重启策略只能用于容器,与 swarm 服务 的重启策略有不同的配置。
### 设置 Docker 容器开机自动启动的方法 为了实现 Docker 容器在系统启动时自动运行的功能,通常有两种主要方式:一种是在容器创建时直接设定自启动属性;另一种是对已存在的容器更新其自启动配置。以下是具体的实施细节。 #### 方法一:创建容器时设置自启动 当首次使用 `docker run` 创建一个新的容器实例时,可以直接通过添加 `--restart=always` 参数来启用该容器的开机自启动功能[^2]。这表示无论主机因任何原因重新启动,这个容器都会被自动拉起继续工作。 ```bash docker run -d --restart=always --name your_container_name your_image_name ``` 在此命令中: - `-d`: 表示以后台模式运行容器。 - `--restart=always`: 设定容器总是尝试重启。 - `your_container_name`: 替换为你希望赋予的新容器的名字。 - `your_image_name`: 替代成实际使用的镜像名称或ID。 #### 方法二:对现有容器更新为自启动 如果目标容器已经被创建并且正在运行,则可以通过 `docker update` 命令为其增加自启动特性[^3]。这种方式允许管理员灵活调整已有资源的行为模式而无需销毁重建它们。 假设有一个名为 `my_existing_container` 的容器需要开启自启动支持,那么可以执行如下指令完成操作: ```bash docker update --restart=always my_existing_container ``` 这条语句的作用就是告诉 Docker,在未来每当宿主机经历冷热重载之后都要确保 `my_existing_container` 能够恢复正常运作状态。 另外值得注意的是,只有当 Docker 服务本身也设置了随操作系统一同加载的情况下,上述针对单个容器所做的更改才会生效。因此还需要确认 Docker 服务已被设定了开机自启机制[^1]。一般情况下可通过 Linux 下面的服务管理工具 Systemd 来达成这一目的: ```bash sudo systemctl enable docker ``` 最后提醒一点,虽然这里讨论的内容专注于让单独某个或者部分选定出来的几个重要业务关联密切型应用对应的虚拟隔离单元具备持久化在线能力,但是考虑到整体架构设计合理性以及性能优化角度出发,建议合理规划哪些组件确实有必要保持长期存活以免浪费计算资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值