无法使用 Systemd 启动我的 Docker 容器

无法使用 Systemd 启动我的 Docker 容器

我在使用 systemd 在启动时运行 Docker 容器时遇到了一个非常具体的问题。

容器使用以下脚本成功启动和停止:

启动容器

#!/usr/bin/env bash
sleep 5
docker start container_name

停止容器

#!/usr/bin/env bash
sleep 5
docker stop container_name

但是,当我使用 systemd 配置以下服务时,它无法成功运行:

[Unit]
Description=Docker Container
After=network.target
After=systemd-user-sessions.service
After=network-online.target
After=multi-user.target

[Service]
User=root
Type=simple
ExecStart=/home/seed/scripts/start-container.sh
ExecStop=/home/seed/scripts/stop-container.sh
TimeoutSec=60
Restart=on-failure
RestartSec=30
StartLimitInterval=350
StartLimitBurst=10

[Install]
WantedBy=default.target

答案1

绝对路径是 Shell 脚本成功的关键。

为什么不不使用主目录脚本(这在服务中不是一个好的做法):

[Unit]
Description=Docker Container
After=network.target
After=systemd-user-sessions.service
After=network-online.target
After=multi-user.target

[Service]
User=root
Type=simple
ExecStart=/usr/bin/docker start -a container_name
ExecStop=/usr/bin/docker stop -t 5 container_name
TimeoutSec=60
Restart=on-failure
RestartSec=30
StartLimitInterval=350
StartLimitBurst=10

[Install]
WantedBy=default.target

祝您码头作业愉快!

相关内容