Docker와 Traefik 빠른 시작
본문
Docker와 Traefik 시작하기
Docker는 Traefik에서 일급 시민(first-class citizen)이라서, Docker 컨테이너와 서비스를 기본으로 지원해요. Docker Compose를 쓰든 컨테이너를 직접 실행하든, Traefik은 Docker 트래픽을 매끄럽게 관리할 환경을 제공합니다.
이 가이드는 다음을 보여줘요:
-
Docker로 Traefik 설치하기
-
Traefik 대시보드 노출하기
-
샘플 애플리케이션 배포하기
-
기본 라우팅 구성하기
사전 준비물
-
Docker
-
Docker Compose (선택)
Traefik 설치하기
Docker Compose 사용하기
Docker Compose 파일을 만드세요. 이 구성은:
-
포트 80과 8080을 노출해요.
-
Docker 프로바이더를 활성화해요
-
대시보드를 기본 설정으로 구성해요.
--api.insecure=true를 켰기 때문에(개발 전용) 포트 8080에서 대시보드를 서빙해요 -
컨테이너 발견을 위해 Docker 소켓을 마운트해요
# docker-compose.yml
services:
traefik:
image: traefik:v3.7
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Traefik을 시작하세요:
docker-compose up -d
Docker CLI 사용하기
대신 Docker로 Traefik을 직접 실행할 수도 있어요. 이 명령은:
-
웹 트래픽과 대시보드 접근을 위해 포트 80과 8080을 노출해요
-
구성 파일과 Docker 소켓을 마운트해요
-
Docker Compose 예시와 동일한 구성을 사용해요
구성 파일을 만드세요:
# traefik.yml
api:
insecure: true
entryPoints:
web:
address: ":80"
providers:
docker: {}
Traefik을 시작하세요:
docker run -d \
-p 80:80 \
-p 8080:8080 \
-v $PWD/traefik.yml:/etc/traefik/traefik.yml \
-v /var/run/docker.sock:/var/run/docker.sock \
traefik:v3.7
대시보드 노출하기
insecure 모드를 명시적으로 켰기 때문에, 대시보드는 인증 없이 포트 8080에서 접근 가능해요. 프로덕션에서는 이 플래그를 켜면 안 됩니다.
대시보드는 다음에서 접근할 수 있어요:
http://localhost:8080/dashboard/
샘플 애플리케이션 배포하기
whoami 서비스를 만드세요:
# whoami.yml
services:
whoami:
image: traefik/whoami
labels:
- "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"
구성을 적용하세요:
docker-compose -f whoami.yml up -d
셋업 테스트하기
애플리케이션이 제대로 노출됐는지 확인하려면 다음 curl 명령을 쓸 수 있어요:
curl http://whoami.localhost
Hostname: 068c0a29a8b7
IP: 127.0.0.1
IP: ::1
IP: 192.168.147.3
RemoteAddr: 192.168.147.2:56006
GET / HTTP/1.1
Host: whoami.localhost
User-Agent: curl/8.7.1
Accept: */*
Accept-Encoding: gzip
X-Forwarded-For: 192.168.147.1
X-Forwarded-Host: whoami.localhost
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: 9232cdd4fd6c
X-Real-Ip: 192.168.147.1
브라우저에서 http://whoami.localhost 를 열어 테스트할 수도 있어요:
Traefik 대시보드의 HTTP Routers 섹션으로 가면, whoami.localhost 라우트가 Traefik Docker 프로바이더가 관리하고 있다는 걸 확인할 수 있어요:
이제 끝났어요! Docker에서 Traefik을 성공적으로 배포하고 라우팅을 구성한 거예요.
다음 단계
-
TLS 구성하기
-
미들웨어 세팅하기
-
메트릭 활성화하기
-
Docker 프로바이더에 대해 더 배우기
프로덕션에서 Traefik OSS를 쓰고 있나요?
직장에서 Traefik을 쓰고 있다면, 엔터프라이즈급 API 게이트웨이 기능이나 Traefik OSS용 상업 지원을 추가하는 걸 고려해 보세요.
-
API Gateway 데모 영상 보기
-
24/7/365 OSS 지원 요청하기
Traefik OSS에 API 게이트웨이 기능을 더하는 건 빠르고 매끄러워요. 갈아엎을 필요도 없고 모든 구성이 그대로 유지됩니다. 짧은 영상으로 직접 확인해 보세요.