docker.service以降、systemdはどのようにサービスを実行しますか?

docker.service以降、systemdはどのようにサービスを実行しますか?

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

使用されたオプション文書:

サービスによって実行されるスクリプトは、Dockerコンテナにeth0のベースアドレスの代わりにeth0:1のIPアドレスを使用するようにするiptables SNATルールを追加します。https://serverfault.com/a/686107

おすすめ記事