도커 컨테이너 자동 재시작 > 도커 & 쿠버네티스

본문 바로가기

[이슈] 도커 컨테이너 자동 재시작

필기자
2023-10-17 13:32 1,120 0

본문

도커 컨테이너 옵션을 활용한 재시작 방법


docker run --restart=always -d your-image


도커 컨테이너 재시작 정책
  • no : 컨테이너가 멈추면 재시작하지 않음. 이것이 디폴트 설정임.
  • on-failure : 컨테이너가 비정상적으로 종료되었을 때(즉, 종료 상태 코드가 0이 아닌 경우)에만 재시작함.
  • unless-stopped : 컨테이너가 사용자에 의해 명시적으로 정지되지 않는 한 항상 재시작함.
  • always : 컨테이너가 멈추면 언제나 재시작함.

이미 실행 중인 컨테이너의 재시작 정책을 변경하려면 docker update 명령어를 사용할 수 있음.

docker update --restart=always your-container-id-or-name


우분투 systemd 활용한 재시작 방법


sudo nano /etc/systemd/system/your-container.service


your-container.service 파일 내용

[Unit]
Description=Your Container Description
After=docker.service
Requires=docker.service

[Service]
ExecStart=/usr/bin/docker start -a your-container-name-or-id
ExecStop=/usr/bin/docker stop -t 2 your-container-name-or-id
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target


systemd service 옵션 내용
  • Description : 서비스에 대한 설명
  • After와 Requires : 이 서비스가 docker.service에 의존한다는 것을 나타냄
  • ExecStart : 서비스가 시작될 때 실행할 명령어
  • ExecStop : 서비스가 중지될 때 실행할 명령어
  • Restart : 재시작 정책 설정
  • RestartSec : 재시작 딜레이 시간 설정
  • WantedBy : 이 서비스가 설치될 목적지를 나타냄
Systemd 데몬 리로드
  • 변경 사항을 적용하기 위해 systemd 데몬을 리로드함.

sudo systemctl daemon-reload


서비스 활성화
  • 서비스를 활성화해서 부팅 시 자동으로 시작되게 함.

sudo systemctl enable your-container.service


서비스 시작 및 상태 확인
  • 최초는 서비스 수동 시작 필요

sudo systemctl start your-container.service
sudo systemctl status your-container.service

댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색