본문 바로가기

잡다/docker

[docker] restart policy

https://docs.docker.com/config/containers/start-containers-automatically/

 

Start containers automatically

 

docs.docker.com

 docker 옵션 중 컨테이너가 종료되었을 때 어떻게 반응할지 지정하기 위한 'restart' 옵션이 존재한다. 서버의 경우 어떤 오류가 발생하더라도 계속 활성화된 상태를 유지해야 하는데, 이를 위해 현재 옵션을 지정할 수 있다.

  • "no": 컨테이너를 재시작하지 않는다. 기본 옵션. 큰따옴표가 붙는 이유는 yml 파일에서 "no"가 false을 의미하기 때문
  • on-failure[:max-retries]: 컨테이너가 비정상적으로 종료되었을 때 ( exit code != 0 일 때 ) 최대 max-retries번까지 컨테이너를 재시작한다.
  • always: 컨테이너가 종료되면 에러 여부와 관계없이 항상 재시작한다. 만약 수동으로 종료했다면 Docker daemon이 재시작할 때 또는 수동으로 활성화할 수 있다.
  • unless-stopped: always에서 수동으로 종료하는 경우 재시작하지 않는다.

 vscode 기준으로 docker-compose 파일 내에서 자동완성을 지원하고 있지는 않으나 실제로는 존재하는 옵션이므로 명시하여 사용할 수 있다.

version: '3'

services:
  my-redis:
    image: redis
  my-server:
    build: ./server
    restart: always
    ports:
      - "3030:8080"