Watchtower는 Docker 컨테이너 이미지를 자동으로 확인하고 업데이트할 수 있게 만든 컨테이너 관리 도구입니다.
Docker 컨테이너는 이미지 기반으로 실행되기 때문에, 새로운 이미지가 배포되어도 실행 중인 컨테이너가 자동으로 변경되지는 않습니다.
기존 방식에서는 관리자가 직접 이미지를 내려받고, 컨테이너를 중지한 뒤 다시 생성해야 합니다.
docker pull nginx:latest
docker stop nginx
docker rm nginx
docker run -d --name nginx -p 80:80 nginx:latest
Watchtower를 사용하면 위와 같은 반복 작업을 자동화할 수 있습니다.
실행 중인 컨테이너의 이미지를 주기적으로 확인하고, 새 이미지가 있으면 기존 컨테이너를 중지한 뒤 동일한 설정으로 다시 실행합니다.
구성 환경
구분내용
| OS | Ubuntu 22.04 / Rocky Linux 8, 9 |
| 권한 | root 계정 기준 |
| 필수 구성 | Docker 설치 필요 |
| 실행 방식 | Docker 컨테이너 방식 |
| 관리 대상 | Docker로 실행 중인 컨테이너 |
| 주요 기능 | 이미지 자동 확인, 컨테이너 재생성, 오래된 이미지 정리 |
Watchtower 기본 실행
Docker가 설치되어 있는지 먼저 확인합니다.
docker --version
docker ps
Watchtower 컨테이너를 실행합니다.
docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower
/var/run/docker.sock은 Docker 데몬과 통신하기 위한 소켓 파일입니다.
Watchtower는 이 소켓을 통해 현재 실행 중인 컨테이너 정보를 확인하고, 필요한 경우 컨테이너를 재생성합니다.
특정 컨테이너만 업데이트
모든 컨테이너를 자동 업데이트하는 것이 부담스럽다면, 특정 컨테이너만 지정할 수 있습니다.
docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower nginx redis
위 예시는 nginx, redis 컨테이너만 Watchtower 관리 대상으로 지정한 방식입니다.
운영 환경에서는 DB나 핵심 서비스 컨테이너를 자동 업데이트 대상에서 제외하는 것이 안전합니다.
업데이트 확인 주기 설정
기본값 대신 원하는 주기로 업데이트 확인 시간을 설정할 수 있습니다.
docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--interval 3600
--interval 3600은 3600초마다 새 이미지 여부를 확인한다는 의미입니다.
즉, 1시간마다 컨테이너 이미지 업데이트 여부를 확인합니다.
1회만 실행
상시 자동 업데이트가 부담스러운 경우, 한 번만 실행하고 종료할 수 있습니다.
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once
운영 서버에서는 자동 실행보다 수동 점검 방식으로 사용하는 것이 더 안전할 수 있습니다.
오래된 이미지 자동 삭제
업데이트 후 사용하지 않는 이전 이미지를 자동으로 삭제할 수 있습니다.
docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--cleanup
--cleanup 옵션을 사용하면 불필요한 이미지가 쌓이는 것을 줄일 수 있습니다.
디스크 용량 관리가 필요한 서버에서 유용합니다.
Docker Compose 구성
Watchtower 설정을 파일로 관리하려면 Docker Compose를 사용할 수 있습니다.
mkdir -p /opt/watchtower
cd /opt/watchtower
cat > docker-compose.yml <<'EOF'
services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 3600 --cleanup
EOF
docker compose up -d
Compose로 구성하면 서버 이전이나 재설치 시 동일한 설정을 다시 적용하기 쉽습니다.
로그 확인
Watchtower 동작 상태는 Docker 로그로 확인할 수 있습니다.
docker logs -f watchtower
어떤 컨테이너를 확인했는지, 이미지 업데이트가 있었는지, 컨테이너가 재시작되었는지 확인할 수 있습니다.
적합한 환경
Watchtower는 개인 서버, 테스트 서버, 홈서버, 소규모 Docker 운영 환경에 적합합니다.
자주 업데이트되는 컨테이너를 관리하거나, 매번 수동으로 이미지를 갱신하는 과정이 번거로운 경우 사용하기 좋습니다.
특히 운영 규모가 크지 않고, 컨테이너 업데이트 자동화가 필요한 환경에서 편의성이 높습니다.
주의사항
Watchtower는 편리하지만 모든 운영 환경에 적합한 도구는 아닙니다.
새 이미지가 등록되면 컨테이너가 자동으로 재생성되기 때문에, 업데이트 과정에서 서비스가 잠시 중단될 수 있습니다.
또한 최신 이미지에 문제가 있을 경우, 정상 동작하던 컨테이너가 업데이트 이후 장애를 일으킬 가능성도 있습니다.
latest 태그를 사용하는 컨테이너는 예기치 않은 버전 변경이 발생할 수 있으므로 주의가 필요합니다.
DB, 인증, 결제, 운영 핵심 서비스처럼 안정성이 중요한 컨테이너는 자동 업데이트 대상에서 제외하는 것이 좋습니다.
운영 서버에서는 테스트 환경에서 먼저 검증한 뒤 적용하는 방식이 안전합니다.
본 도구 사용으로 인한 서비스 장애, 데이터 손실, 과금, 설정 오류 등의 결과는 사용자 책임입니다.
결론
Watchtower는 Docker 컨테이너 이미지 업데이트를 자동화해주는 편의성 도구입니다.
소규모 Docker 운영 환경에서는 관리 부담을 줄이는 데 유용하지만, 운영 서버에서는 업데이트 대상과 주기를 신중하게 설정해야 합니다.
'1. Linux > 기타' 카테고리의 다른 글
| M.2 도킹기 Clone (0) | 2026.09.01 |
|---|---|
| 스크린샷 툴 - Snipaste 설치 및 사용 방법 (0) | 2026.08.11 |
| tmux 설치 및 사용 방법 (0) | 2026.05.12 |