본문 바로가기
WIKI 기술 지식 베이스

Docker와 Traefik 빠른 시작

원문 보기 위키 갱신

출처: Docker와 Traefik 빠른 시작 (Docker and Traefik Quick Start)

본문

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 게이트웨이 기능을 더하는 건 빠르고 매끄러워요. 갈아엎을 필요도 없고 모든 구성이 그대로 유지됩니다. 짧은 영상으로 직접 확인해 보세요.

더 알아보기 (Learn more)