运维

运维

Products

当前位置:首页 > 运维 >

如何让Ubuntu Docker实现自动重启的设置?

96SEO 2025-10-31 16:54 0


在Docker容器管理中,自动重启容器是一个常见的需求。本文将详细介绍如何在Ubuntu系统中配置Docker容器实现自动重启, 包括使用Docker Restart策略、systemd服务以及Docker Compose等方法。

Ubuntu Docker如何实现自动重启

Ubuntu Docker实现自动重启的方法

1. 通过Docker Restart策略

Docker原生支持Restart策略, 这是最简单、最直接的自动重启方式。

  • no: 默认值,不自动重启容器。
  • on-failure: 如果容器退出状态码非0,则自动重启容器。
  • always: 无论容器退出状态码如何,都自动重启容器。
  • unless-stopped: 如果容器被手动停止,则不会自动重启。

使用docker run命令时 通过--restart参数指定策略,比方说:

docker run -d --restart=always --name my_container my_image

若容器已在运行,可使用docker update命令重启策略,比方说:

docker update --restart always my_container

输出后来啊会显示容器的RestartPolicy类型。

2. 使用systemd服务

若需更复杂的自动重启逻辑, 可创建自定义脚本并通过systemd设置为系统服务:

  • 步骤1:编写重启脚本,比方说:
  • #!/bin/bash
    docker restart my_container
  • 赋予脚本施行权限:chmod +x /path/to/script.sh
  • 步骤2:编写守护进程脚本, 定时调用重启脚本:
  • #!/bin/bash
    while true; do
      /path/to/script.sh
      sleep 3600
    done
  • 步骤3:创建systemd服务文件,内容如下:
  • 
    Description=Docker Auto Restart Service
    ExecStart=/path/to/script.sh
    WantedBy=multi-user.target
  • 步骤4:启用并启动服务:
  • sudo mv docker-auto-restart.service /etc/systemd/system/
    sudo systemctl enable docker-auto-restart
    sudo systemctl start docker-auto-restart

此方案适用于需要额外控制的场景,但配置复杂度较高。

3. 使用Docker Compose

若使用Docker Compose管理容器, 可在docker-compose.yml文件中为服务指定重启策略,比方说:

version: '3'
services:
  my_service:
    image: my_image
    restart: always  # 或 on-failure、unless-stopped

保存文件后运行docker-compose up -d启动服务,容器会根据策略自动重启。

注意事项

  • 优先使用Docker原生的Restart策略, 无需额外配置,可靠性更高;
  • 自定义脚本方案需确保systemd服务正常运行,避免守护进程崩溃导致自动重启失效;
  • 若Docker服务本身未设置开机自启,需先通过sudo systemctl enable docker设置,确保主机重启后Docker服务自动启动。

结论

通过以上方法,您可以在Ubuntu系统中实现Docker容器的自动重启。选择合适的方法取决于您的具体需求和场景。


标签: ubuntu

提交需求或反馈

Demand feedback