systemd如何在docker.service之后运行服务

systemd如何在docker.service之后运行服务

我有一个服务文件,它执行一个shell脚本,该脚本需要在docker启动后执行。这是我尝试过的,但脚本启动时无需等待 docker.service:

[Unit]
Description=network configuration service 
Requires=docker.service
After=docker.service

[Service]
WorkingDirectory=/etc/systemd/system/
Type=oneshot
ExecStart=/bin/bash netset.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

答案1

这是我在 docker.service 启动后运行的服务单元配置文件,并且每当 docker.service 重新启动时也会重新运行:

[Unit]
Description=Floating IP
After=docker.service
BindsTo=docker.service
ReloadPropagatedFrom=docker.service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/floating-ip.sh
ExecReload=/usr/local/bin/floating-ip.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

使用的选项的文档:

该服务执行的脚本添加了一条 iptables SNAT 规则,使 Docker 容器使用 eth0:1 上的 IP 地址,而不是 eth0 上的默认地址,即将该方法保留在https://serverfault.com/a/686107

相关内容