, Traefik docker-socket-proxy 설치

반응형

Traefik docker-socket-proxy 설치

Docker Socket Proxy는 TCP 또는 유닉스 소켓을 통해 Docker API를 인터넷에 직접 노출하지 않고 안전하게 액세스 할 수 있는 도구입니다. 이 튜토리얼에서는 Traefik을 역프록시로 사용하여 Docker Socket Proxy를 설치하여 HTTPS를 쉽게 관리하는 방법을 보여줍니다.

 

전제조건

시작하기 전에 다음 사항을 확인하십시오:

  • 도커가 설치된 서버
  • 서버의 IP 주소를 가리키는 도메인 이름
  • 작동 중인 Traefik 설치

 

1단계: 도커 네트워크 만들기

첫 번째 단계는 Docker Socket Proxy 컨테이너와 Traefik에 의해 사용될 Docker 네트워크를 만드는 것입니다.

docker network create docker-proxy_network

 

2단계: 도커 작성 파일 작성

다음 내용을 포함하는 Docker-proxy-compose.yml이라는 Docker Compose 파일을 생성합니다:

version: '3.8'

services:
  docker-proxy:
    image: tecnativa/docker-socket-proxy
    container_name: docker-proxy
    restart: always
    networks:
      - docker-proxy_network
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.docker-proxy.rule=Host(`docker.example.com`)"
      - "traefik.http.routers.docker-proxy.entrypoints=http"
      - "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.docker-proxy-secure.rule=Host(`docker.example.com`)"
      - "traefik.http.routers.docker-proxy-secure.entrypoints=https"
      - "traefik.http.routers.docker-proxy-secure.tls=true"
      - "traefik.http.routers.docker-proxy-secure.tls.certresolver=letsencrypt"
    environment:
      - MODE=bind
      - ALLOWED_NETWORKS=0.0.0.0/0
      - SOCKET_PORT=2375
      - HTTP_ENABLED=true
      - HTTP_PORT=80
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"

이 Docker Compose 파일은 Docker 소켓 프록시 컨테이너를 실행하는 Docker-proxy라는 단일 서비스를 정의합니다. 도커-프록시 서비스는 도커-프록시_네트워크 네트워크에 연결되어 있으며, Traefik 레이블은 서비스에 대한 라우팅 규칙을 정의합니다.

 

traefik.https.https.docker-https 레이블은 Traefik에게 docker.example.com 도메인에 대한 요청을 이 서비스로 라우팅하고 HTTP를 사용하도록 지시합니다. traefik.http.routers.docker-proxy-secure 레이블은 동일한 라우팅 규칙을 정의하지만 Let's Encrypt 인증서와 함께 HTTPS를 사용합니다.

 

볼륨 섹션은 호스트 시스템의 도커 소켓을 /var/run/docker에 마운트합니다.Docker Socket Proxy 컨테이너에 있는 sock 디렉토리를 통해 컨테이너가 Docker API에 액세스 할 수 있습니다.

 

환경 섹션은 Docker Socket Proxy 컨테이너가 포트 2375의 Docker API에 바인딩되고 포트 80의 HTTP 끝점을 노출하도록 지정합니다.

 

3단계: container 시작

다음 명령을 사용하여 Docker Compose를 사용하여 Docker Socket Proxy 컨테이너 및 Traefik을 시작합니다:

docker-compose up -d

이 명령은 Docker Socket Proxy 및 Traefik 서비스를 백그라운드에서 시작합니다.

 

4단계: 도커 API 테스트

컨테이너가 실행되면 다음 명령을 실행하여 Docker API를 테스트할 수 있습니다:

curl http://docker.example.com/info

이 명령은 도커 소켓 프록시가 올바르게 작동하고 있음을 나타내는 도커 데몬에 대한 정보를 반환합니다.

 

결론

이 튜토리얼에서는 Docker API에 안전하게 액세스 하기 위해 Traefik 역방향 프록시 뒤에 Docker Socket Proxy를 설정하는 방법에 대해 배웠습니다. 이 설정을 사용하면 HTTPS를 통해 Docker 컨테이너를 쉽게 관리하고 무단 액세스로부터 Docker API를 보호할 수 있습니다.

 

항상 그렇듯이 Docker 설치 및 Traefik 구성을 최신 보안 패치 및 모범 사례로 최신 상태로 유지하십시오

728x90

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band