,
Docker Watchtower는 Docker 컨테이너를 최신 이미지로 자동 업데이트하는 데 유용한 도구입니다. 이 튜토리얼에서는 Traefik을 역프록시로 사용하여 Docker Watchtower를 설치하여 HTTPS를 쉽게 관리하는 방법을 보여줍니다.
시작하기 전에 다음 사항을 확인하십시오:
첫 번째 단계는 워치타워 컨테이너와 트래픽이 사용할 도커 네트워크를 만드는 것이다.
docker network create watchtower_network
다음 내용을 포함하는 watchtower-compose.yml이라는 도커 컴포지트 파일을 만듭니다:
version: '3.8'
services:
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
restart: always
networks:
- watchtower_network
labels:
- "traefik.enable=true"
- "traefik.http.routers.watchtower.rule=Host(`watchtower.example.com`)"
- "traefik.http.routers.watchtower.entrypoints=http"
- "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.watchtower-secure.rule=Host(`watchtower.example.com`)"
- "traefik.http.routers.watchtower-secure.entrypoints=https"
- "traefik.http.routers.watchtower-secure.tls=true"
- "traefik.http.routers.watchtower-secure.tls.certresolver=letsencrypt"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
이 도커 컴포지트 파일은 Watchtower 컨테이너를 실행하는 Watchtower라는 단일 서비스를 정의한다. Watchtower 서비스는 watchtower_network network에 연결되어 있으며, Traefik 레이블은 서비스에 대한 라우팅 규칙을 정의합니다.
traefik.http.routers.watchtower 라벨은 트래픽에게 watchtower.example.com 도메인에 대한 요청을 이 서비스로 라우팅하고 HTTP를 사용하도록 지시한다. traefik.http.routers.watchtower-secure 레이블은 동일한 라우팅 규칙을 정의하지만 Let's Encrypt 인증서와 함께 HTTPS를 사용합니다.
볼륨 섹션은 Watchtower가 동일한 도커 호스트의 다른 컨테이너를 모니터링하고 업데이트할 수 있도록 도커 소켓을 마운트합니다.
다음 명령을 사용하여 Docker Compose를 사용하여 Watchtower 컨테이너 및 Traefik을 시작합니다:
docker-compose up -d
이 명령은 Watchtower와 트래픽 서비스를 모두 백그라운드에서 시작합니다.
이 튜토리얼에서는 Docker를 사용하여 HTTPS로 Traefik 역프록시 뒤에 Docker Watchtower를 설정하는 방법을 배웠습니다. Traefik을 사용하면 워치타워 서비스에 대한 HTTPS 및 Let's Encrypt 인증서를 쉽게 관리할 수 있습니다.
Watchtower를 사용하면 Docker 컨테이너가 항상 최신 이미지로 실행되도록 하여 보안 취약성의 위험을 줄이고 성능을 향상시킬 수 있습니다.