📜  docker 如何在计算机启动时重新启动容器 - Javascript (1)

📅  最后修改于: 2023-12-03 15:30:32.282000             🧑  作者: Mango

Docker 如何在计算机启动时重新启动容器

在使用 Docker 部署应用时,我们经常需要在服务器重启后自动启动容器。这可以通过 systemd,Upstart 或 SysV init 等服务管理器来实现。下面是在 systemd 中如何实现自动重启容器的步骤。

1. 创建一个 systemd service 文件

在系统中创建一个名为 docker-container.service 的文件,例如:

sudo nano /etc/systemd/system/docker-container.service

并添加以下内容:

[Unit]
Description=Docker Container
Wants=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker start -a my-container
ExecStop=/usr/bin/docker stop -t 2 my-container

[Install]
WantedBy=default.target

该文件的作用是将容器 my-container 作为一个 systemd 服务运行,并设置为随着 Docker 服务的运行而启动,并在任何情况下(例如容器崩溃或重启服务器)都能重新启动。

2. 重载 systemd 配置

添加服务完成后,需要重新加载 systemd 配置:

sudo systemctl daemon-reload
3. 启用服务

启用服务将自动启动容器服务,并在系统启动时将其设置为自动启动:

sudo systemctl enable docker-container.service
4. 检查服务状态

启用服务后,可以通过以下命令来检查服务的状态:

sudo systemctl status docker-container.service

如果一切正常,将看到类似以下的输出:

● docker-container.service - Docker Container
   Loaded: loaded (/etc/systemd/system/docker-container.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2021-09-20 11:11:21 CST; 10h ago
 Main PID: 13712 (docker)
    Tasks: 8
   Memory: 5.5M
      CPU: 1.116s
   CGroup: /system.slice/docker-container.service
           └─13712 /usr/bin/docker start -a my-container

至此,您已成功地将 Docker 容器作为服务运行,并且在计算机启动时自动重新启动。