반응형

도커 이미지를 받고 컨테이너를 만들고 나면 나중에 해당 이미지가 업데이트됐을 때 컨테이너를 다시 만들어야 한다. 물론 대부분 다시 만들어도 데이터가 유지되도록 만들어져 있지만, 세팅 값을 기억하는 게 굉장히 귀찮다.

그래서 예전에 조금이라도 간편하게 할 수 있는 시놀로지 도커 이미지 업데이트 방법을 올렸는데 이것도 방법이 귀찮고 몇 번 해보니 제대로 업데이트된 건지도 의문이다.

그러다가 우연히 도커 이미지 업데이트를 자동화해주는 Watchtower라는 도커 이미지를 발견했다. 도커 소켓과의 연결 때문에 시놀로지 도커 상에서 생성할 순 없지만 딱 한 번 ssh에서 생성해 놓으면 앞으로 신경 쓸 필요가 없으므로 한번 해봄 직하다.

https://containrrr.dev/watchtower/

 

Watchtower

 

containrrr.dev

공식 홈페이지에 따르면 ssh에서 아래 명령어로 컨테이너를 생성하면 된다.


sudo docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower

이렇게 도커 소켓만 매핑해주면 기본 세팅으로 하루에 한 번씩 도커 이미지 업데이트가 있는지 확인하고 업데이트가 있으면 자동으로 이미지를 업데이트하고 컨테이너도 그대로 재생성한다.

로컬 도커 말고 원격 도커를 사용하는 방법도 있고, 이외에 여러 가지 옵션이 있으니 공식 문서를 참고하면 된다. 아래는 내가 사용 중인 옵션값


sudo docker run -d --name watchtower -e TZ=Asia/Seoul -e WATCHTOWER_CLEANUP=true -e WATCHTOWER_REMOVE_VOLUMES=true -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower

별건 아니고 컨테이너 재생성 시 찌꺼기도 제거하는 옵션을 추가했다.

반응형
  1. ㅇㅇ 2021.03.10 00:07

    혹시 업데이트 시각은 어떻게 되나요? 오후 6시~새벽2시까지 NAS를 켜놓는데

    로그는 다음과 같이 뜨더라구요
    time="2021-03-09T23:56:07+09:00" level=info msg="Starting Watchtower and scheduling first run: 2021-03-10 23:56:07 +0900 KST m=+86400.690342303

    KST 09시에 한다는 뜻인가요? 아니면 컨테이너를 켠 23:56:07 기준으로 9시간 뒤에 한다는뜻인가용

    • BlogIcon joyfuI 2021.03.10 00:23 신고

      딱히 신경안쓰고 있었는데 홈페이지 가보니까 별도로 옵션을 설정해주지 않으면 24시간 간격으로 새 이미지를 확인한다고 합니다.
      로그 내용은 2021-03-09T23:56:07에 켜졌고 다음 스케줄 예약은 2021-03-10 23:56:07이라고 하네요. +09:00는 시간대를 의미합니다. UTC+09:00은 우리나라 시간대죠.

+ Recent posts