Docker 원격 컨텍스트 via SSH over Proxy

발행: (2025년 12월 24일 오전 07:26 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

Overview

SSH를 통해 Docker 컨텍스트를 사용하여 원격 Docker 데몬을 안전하게 관리하고, SSH 트래픽을 SOCKS5 프록시를 통해 라우팅합니다.
프록시를 사용하도록 SSH를 설정하고, SSH를 통해 원격 호스트에 연결하는 Docker 컨텍스트를 정의하면, 로컬에서 실행되는 Docker 명령이 투명하게 원격 Docker 데몬으로 전달됩니다. 이를 통해 다음과 같은 이점을 유지하면서도 표준 Docker 워크플로(docker ps, docker compose, docker build)를 마치 로컬 데몬을 사용하는 것처럼 사용할 수 있습니다:

  • SSH 키 인증
  • 프록시 적용 (SOCKS5 또는 HTTP)
  • 연결 유지 메커니즘

SSH Configuration

~/.ssh/config에 호스트 패턴을 추가하여 일치하는 모든 호스트가 자동으로 프록시와 keep‑alive 설정을 사용하도록 합니다.

# Apply to all hosts matching vps-*
Host vps-*
  ServerAliveInterval   10
  ProxyCommand nc --proxy-type socks5 --proxy 127.0.0.1:10808 %h %p

# Specific host for Docker access
Host vps-docker
  HostName 
  User 
  Port 
  PreferredAuthentications publickey
  • ServerAliveInterval – SSH 연결을 유지하기 위해 주기적으로 패킷을 전송합니다.
  • ProxyCommand – SSH 트래픽을 로컬 SOCKS5 프록시(예: VPN 터널)로 강제 전달합니다.
  • PreferredAuthentications publickey – 비밀번호 인증 대신 공개키 인증을 강제합니다.

Docker Context

SSH를 통해 원격 데몬에 연결하는 Docker 컨텍스트를 생성합니다:

docker context create vps-docker-host --docker "host=ssh://vps-docker"

컨텍스트를 활성화합니다:

docker context use vps-docker-host

컨텍스트가 활성화된 상태에서는 모든 Docker CLI 명령(docker ps, docker compose, docker build 등)이 로컬이 아닌 원격 Docker 데몬을 대상으로 동작합니다.

Back to Blog

관련 글

더 보기 »