• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
정보

Docker 이미지 자동 업데이트 툴 Watch Tower 설치하기.

달소 달소 3460

2

5

안녕하세요. 달소입니다.

오늘은 많은분들이 아마 알고계실 Docker image 자동 업데이트 도구인 Watch Tower에 대해서 소개해드리고 직접 설치해보고자합니다.

 

어떤 프로그램이나 서비스를 사용하다보면 시간이 지남에 따라 취약점인 나오고 기능 개선또한 이루어지게 됩니다. 이럴경우 당연히 업데이트가 나오게되는데요.

 

일반적인 SW의 경우 관리자/사용자가 수동으로 업데이트해주면 되지만(이것도 사실 쉽지않음..) Docker Image의 경우 이미지를 새로받고 컨테이너실행 명령어를 찾고 다시 실행시키고 등 되게 번거롭습니다.

 

이러한 번거로움을 해결하도록 도와주는게 Watch Tower 입니다.

Watch Tower란?

Watch Tower 는 이름그대로 감시타워입니다. 호스트에서 실행중인 Docker Container를 모니터링하고 최신이미지가 있으면 기존 컨테이너의 설정값을 그대로 신규 이미지를 통해 최신 컨테이너로 업데이트 해줍니다.

 

당연히(?) 옵션을 통해서 강제업데이트를 하지않게 할수도있고 제외할 컨테이너를 포함 할 수도있습니다.


https://containrrr.dev/watchtower/container-selection/

깃허브에서 9700개의 스타를 받을정도로 꽤나 인기있는 툴이기때문에 아무쪼록 필요하시다면 아래 가이드를 통해 설치해보시면 되겠습니다.

설치환경

Ubuntu 20.04 LTS
Docker
Docker-compose

Docker로 Watch Tower 설치하기.

메뉴얼상에는 docker 및 docker-compose가 모두있지만 개인적으로 설정값을 저장할 수 있는 docker-compose를 선호하기 때문에 해당 방식으로 진행하겠습니다.

먼저 watchtower의 설정값을 보관해줄 디렉터리를 생성해주겠습니다.

 

mkdir -p /data/watchtower/config
cd /data/watchtower
vi docker-compose.yml

version: "3"
services:
  watchtower:
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      TZ: Asia/Seoul
      WATCHTOWER_POLL_INTERVAL: 86400
    restart: unless-stopped

여기서 환경 변수를 더 추가하시고 싶다면 WATCHTOWER_CLEANUP은 업데이트 성공후 기존 이미지를 삭제할 것 인지 대한것 인데 혹시 모르니 false로 하고 추가해주시면 되겠습니다.

 

POOL_INTERVAL은 체크 주기이며 86400초는 24시간을 의미합니다.

컨테이너 생성명령어는 docker-compose up -d // v2 일경우 docker compose up -d 입니다.

 

watchtower의 경우 gui를 지원해주지 않기때문에 CLI에서 동작을 확인해야하는데요.

docker ps 명령어를 통해 컨테이너 id를 획득하고
docker logs 명령어로 해당 컨테이너의 로그를 확인해주시면됩니다.

저는 동작을 테스트하기위해 10초짜리로 만들어봤습니다.

자동으로 최신 이미지를 검색하고 컨테이너를 중단시키고 실행시켜줍니다.

쉽죠?

 

++ 제외할 컨테이너가 있다면 제외할 컨테이너에 라벨을 붙여주시면 됩니다.
labels:
com.centurylinklabs.watchtower.enable="false"

 

도커는 정말... 모든것을 간편하게 해주는군요 ㅎㅎ
아무쪼록 사용하시는데 문제가 없으셨으면 좋겠습니다~

신고공유스크랩
5

달소 달소
98Lv. 195014P
다음 레벨까지 1006P


메인서버 - Ryzen 5700G / Proxmox 7.2 / Ubuntu / Xpenology / 기타 VM 등등
보조서버 - Intel i9-9900ES(QQC0) / H370M / Proxmox 7.1 / 아직개발용서버로 사용중
백업스토리지서버 - DS920+ 
하드웨어,가상화 등등 여러 IT분야에 관심이 두루두루많습니다만 깊게알고있는건 없습니다 하하하

2등
nom 2022.08.04. 01:05

예외 처리도 가능할까요? 특정 버전을 유지해야할 상황이 있을 수도 있을 듯한데...

profile image
달소 글쓴이 2022.08.04. 09:34
nom

제외할 컨테이너에 라벨을 붙여주시면 됩니다.

labels:

com.centurylinklabs.watchtower.enable="false"

3등
어텍 2023.02.21. 13:39
좋은정보 감사합니다. 이참에 묵혀둔 docker 업데이트 적용해보겠습니다.
profile image
초보나스 2023.11.12. 12:18

 

1111.jpg

 

캬 달소님 다시한번 감사합니다 나스 부팅 했더니 저렇게 뜨면서 이름도 지맘대로 변경되더니 이미지쪽은 1개인데

컨테이너는 이상한 이름으로  Watch Tower 8개정도가 있어서 컨테이너랑 이미지랑 지우고 다시 보고 재설치했네요

 

이해가 안되는건 아무 것도 건드릴 적 없는데 저렇게 이름변경되고 컨테이너에 8개씩 생성된는 이유를 모르겠네요

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
질문 /var/www 폴더가 삭제되었습니다. ㅜ,.ㅜ 2 니속사정 1일 전20:42 255 +1
잡담 jellyfin 자원 진짜 안쓰네요 1 kmw_ 1일 전19:26 366 +1
잡담 iventoy pxe는 속도가 엄청 느리군요.. nohdd는 왜 빠르지.. 음... 2 purndal 2일 전00:52 199 +2
3900
image
달소 21.06.22.13:19 19507 0
3899
image
달소 22.03.17.22:09 19076 +14
3898
image
달소 20.12.25.17:18 16242 +5
3897
image
달소 23.01.27.14:15 16194 +8
3896
image
달소 21.01.02.13:32 8174 0
3895
image
달소 21.04.28.14:05 8129 +6
3894
image
똥쓰똥쓰 22.09.24.16:54 8026 +3
3893 정보
image
달소 21.05.06.11:38 7930 +4
3892
image
달소 21.02.26.15:02 7690 +1
3891
image
달소 21.07.30.17:12 7085 +4
3890
image
달소 22.03.17.23:40 7079 +2
3889 정보
image
달소 21.06.11.13:24 6951 +4
3888 질문
image
달소 21.04.23.12:51 6134 +3
3887
image
ExpBox 22.04.16.23:19 5919 +4
3886 정보
image
달소 22.05.06.13:12 5896 +3
3885
image
에프킬라 22.04.19.22:08 5888 +6
3884
image
달소 21.07.30.11:40 5745 +1
3883 정보
image
달소 21.10.21.17:59 5606 +3
3882
image
달소 23.04.09.14:13 5214 +4
3881
image
달소 22.03.17.22:25 5100 +11