📅  最后修改于: 2023-12-03 15:30:32.282000             🧑  作者: Mango
在使用 Docker 部署应用时,我们经常需要在服务器重启后自动启动容器。这可以通过 systemd,Upstart 或 SysV init 等服务管理器来实现。下面是在 systemd 中如何实现自动重启容器的步骤。
在系统中创建一个名为 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 服务的运行而启动,并在任何情况下(例如容器崩溃或重启服务器)都能重新启动。
添加服务完成后,需要重新加载 systemd 配置:
sudo systemctl daemon-reload
启用服务将自动启动容器服务,并在系统启动时将其设置为自动启动:
sudo systemctl enable docker-container.service
启用服务后,可以通过以下命令来检查服务的状态:
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 容器作为服务运行,并且在计算机启动时自动重新启动。