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

相關內容