docker.service 이후에 서비스를 실행하는 방법을 체계화했습니다.

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

사용된 옵션에 대한 문서:

이 서비스에 의해 실행되는 스크립트는 Docker 컨테이너가 eth0의 기본값 대신 eth0:1의 IP 주소를 사용하도록 하는 iptables SNAT 규칙을 추가합니다.https://serverfault.com/a/686107.

관련 정보