Docker 재시작 스크립트
#!/bin/bash
CONTAINERS=("container1_name" "container2_name") # 감시할 컨테이너 이름 입력
CHECK_INTERVAL=600 # 체크 주기 (초 단위)
while true; do
for CONTAINER_NAME in "${CONTAINERS[@]}"; do
# 컨테이너 상태 확인
CONTAINER_STATUS=$(docker inspect -f '{{.State.Status}}' "$CONTAINER_NAME" 2>/dev/null)
# 컨테이너가 존재하지 않거나, 비정상 상태일 경우 재실행
if [[ "$CONTAINER_STATUS" != "running" ]]; then
echo "$(date) - 컨테이너 '$CONTAINER_NAME' 비정상 상태 감지. 재실행 중..."
docker start "$CONTAINER_NAME"
fi
done
sleep $CHECK_INTERVAL
done
chmod +x container_watcher.sh
nohup ./container_watcher.sh &
자동시작 설정
sudo nano /etc/systemd/system/container-watcher.service
[Unit]
Description=Docker Container Watcher
After=docker.service
Requires=docker.service
[Service]
ExecStart=/path/to/container_watcher.sh
Restart=always
[Install]
WantedBy=multi-user.target
서비스 시작 및 실행
sudo systemctl daemon-reload
sudo systemctl enable container-watcher.service
sudo systemctl start container-watcher.service
스크립트 수정
nano container_watcher.sh
스크립트 중단
ps aux | grep container_watcher.sh
pkill -f container_watcher.sh
스크립트 실행
nohup ./container_watcher.sh &
스크립트 실행 확인
ps aux | grep container_watcher.sh
서비스 설정 한 경우
sudo systemctl restart container-watcher.service