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

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

달소 달소 3432

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
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
번호 제목 글쓴이 날짜 조회 추천
DuckDNS 서버가 자주 죽어서 도매인 구입했습니다 10 지축또타 1일 전23:02 283 +1
Ubuntu 24.04 LTS Desktop 원격 접속 설정하기(SSH,RDP) 4 달소 3일 전18:33 180 +1
Ubuntu 24.04 LTS Server 설치해보기 2 달소 4일 전17:40 262 +2
3681
image
달소 7시간 전10:03 145 0
3680
normal
keiminem 8시간 전09:29 200 0
3679
normal
환경설정 1일 전13:31 343 0
3678
image
지축또타 1일 전23:02 283 +1
3677
image
ljr10 1일 전20:47 343 0
3676
image
양미 1일 전18:34 164 0
3675
file
몰래컴퓨터 2일 전00:30 159 0
3674
image
무백 2일 전21:45 167 0
3673
normal
kmw_ 3일 전21:52 524 0
3672
normal
ljr10 3일 전21:18 143 0
3671
image
달소 3일 전19:06 105 0
3670
image
달소 3일 전18:33 180 +1
3669
image
달소 3일 전18:09 197 0
3668
image
달소 4일 전17:40 262 +2
3667
normal
까칠한나그네 4일 전15:44 101 0
3666
image
달소 4일 전10:37 356 +2
3665
image
달소 4일 전23:10 125 +1
3664
image
달소 4일 전22:54 116 0
3663
normal
감자칩 4일 전18:56 230 0
3662
image
동도리군 5일 전12:14 105 0