systemd как запустить службу после docker.service

systemd как запустить службу после docker.service

У меня есть файл службы, который выполняет скрипт оболочки, и скрипт должен быть выполнен после запуска 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

Документация используемых опций:

Скрипт, выполняемый этой службой, добавляет правило SNAT iptables, чтобы заставить контейнеры Docker использовать IP-адрес на eth0:1 вместо IP-адреса по умолчанию на eth0, т.е. сохраняя подходhttps://serverfault.com/a/686107.

Связанный контент