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.

관련 정보