Docker를 운영하다 보면 하나의 Docker 환경만 사용하는 것이 아니라 여러 대의 Docker 서버를 관리해야 하는 경우가 많습니다.
예를 들어 로컬 개발 환경, 테스트 서버, 운영 서버, 클라우드 서버 등 각각 다른 Docker Engine을 사용할 수 있습니다.
기존에는 서버마다 직접 SSH로 접속하거나 환경 변수를 변경해야 했지만, Docker Context를 사용하면 하나의 Docker CLI에서 여러 Docker 환경을 쉽게 관리할 수 있습니다.
이때 새로운 Docker Context를 만드는 명령어가 바로 docker context create입니다.
Docker Context Create는 새로운 Docker Context를 생성하는 명령어입니다. 생성한 Context에는 특정 Docker Engine 연결 정보, SSH 주소, TLS 인증 정보 등을 저장할 수 있으며, 이후 docker context use 명령으로 원하는 환경으로 쉽게 전환할 수 있습니다.
이번 글에서는 Docker Context Create의 개념부터 기본 사용법, 원격 Docker 서버 연결, 주요 옵션, 실무 활용 방법까지 자세히 알아보겠습니다.
Docker Context Create란 무엇인가?
Docker Context Create는 새로운 Docker Context를 생성하는 명령어입니다.
Context는 Docker CLI가 어떤 Docker Engine과 통신할지 결정하는 설정입니다.
새로운 Context를 생성하면 다음과 같은 환경을 관리할 수 있습니다.
- 로컬 Docker 서버
- 개발 서버
- 테스트 서버
- 운영 서버
- 원격 Docker Engine
여러 Docker 환경을 관리하는 DevOps 환경에서 매우 중요한 기능입니다.
Docker Context Create는 언제 사용하는가?
다음과 같은 상황에서 사용합니다.
- 원격 Docker 서버 연결
- 여러 서버 관리
- 개발·운영 환경 분리
- Docker Swarm 관리
- 클라우드 Docker 환경 연결
- 서버 전환 자동화
특히 여러 대의 Docker Host를 관리하는 환경에서는 필수적으로 사용됩니다.
Docker Context Create 기본 사용법
가장 기본적인 사용 방법입니다.
docker context create my-server
새로운 Context 이름을 생성합니다.
다만 Docker Engine 연결 정보가 없기 때문에 일반적으로 Endpoint 설정을 함께 지정합니다.
로컬 Docker Context 생성하기
로컬 Docker Socket을 사용하는 Context를 생성합니다.
docker context create local-docker \
--docker host=unix:///var/run/docker.sock
로컬 Docker Engine을 가리키는 Context가 생성됩니다.
원격 Docker 서버 Context 생성하기
SSH를 이용하여 원격 Docker 서버에 연결하는 방법입니다.
docker context create production \
--docker host=ssh://root@192.168.0.100
이제 production이라는 Context를 통해 원격 서버 Docker를 관리할 수 있습니다.
SSH 기반 Context 생성 장점
SSH 기반 Context는 별도의 Docker API 포트를 열지 않아도 됩니다.
장점:
- 보안성이 높음
- SSH 인증 사용 가능
- 방화벽 설정 간단
- 원격 관리 편리
운영 서버에서는 SSH 기반 Docker Context를 많이 사용하는 편입니다.
TLS 기반 Docker Context 생성하기
TLS 인증을 사용하는 Docker Remote API 환경에서도 Context를 생성할 수 있습니다.
예:
docker context create remote-tls \
--docker host=tcp://server-ip:2376
인증서 기반 환경에서는 추가 TLS 옵션을 설정할 수 있습니다.
생성된 Context 확인하기
Context 생성 후 목록을 확인합니다.
docker context ls
출력:
NAME DESCRIPTION
default * Local Docker
production ssh://root@192.168.0.100
생성한 Context가 정상적으로 등록된 것을 확인할 수 있습니다.
Context 생성 후 사용하기
생성한 Context로 전환합니다.
docker context use production
확인:
docker context show
출력:
production
이제 모든 Docker 명령은 해당 서버에서 실행됩니다.
Docker Context Create 실무 활용 예제
Docker Context Create는 여러 Docker 서버를 하나의 환경에서 관리할 때 가장 중요한 시작 단계입니다. Context를 미리 구성해두면 서버마다 직접 접속하지 않고도 원하는 Docker 환경으로 빠르게 전환할 수 있습니다.
운영 서버 Context 생성하기
가장 많이 사용하는 형태입니다.
docker context create production \
--docker host=ssh://root@production-server
production이라는 이름의 원격 Docker Context가 생성됩니다.
이후:
docker context use production
명령으로 운영 서버 Docker를 사용할 수 있습니다.
개발 서버 Context 생성하기
개발 환경도 별도로 관리할 수 있습니다.
docker context create development \
--docker host=ssh://root@development-server
개발과 운영 환경을 분리하여 관리할 수 있습니다.
테스트 서버 Context 추가하기
테스트 환경도 동일한 방식으로 생성합니다.
docker context create staging \
--docker host=ssh://root@staging-server
최종적으로 다음과 같은 구조를 만들 수 있습니다.
development
└─ 개발 서버
staging
└─ 테스트 서버
production
└─ 운영 서버
Context 생성 후 연결 확인하기
생성된 Context 정보를 확인합니다.
docker context inspect production
확인 항목:
- Docker Host 주소
- SSH 연결 정보
- Endpoint 설정
Context 생성 후 바로 전환하기
생성하면서 바로 사용할 수는 없으므로 별도로 변경합니다.
docker context use production
확인:
docker context show
출력:
production
Context 생성 시 이름 규칙 설정하기
여러 서버를 관리할 때는 이름 규칙을 정하는 것이 좋습니다.
추천 예:
prod-web
prod-api
prod-db
dev-web
dev-api
dev-db
서버 역할까지 포함하면 관리가 더욱 쉬워집니다.
Linux 서버 문제 해결
운영팀에서 여러 Docker 서버를 관리하면서 매번 SSH 접속 후 Docker 명령을 실행하는 방식으로 운영하고 있었습니다.
하지만 서버가 많아지면서 잘못된 서버에서 명령을 실행하는 문제가 발생했습니다.
이를 해결하기 위해 서버별 Docker Context를 생성했습니다.
운영 서버:
docker context create production \
--docker host=ssh://root@prod-server
개발 서버:
docker context create development \
--docker host=ssh://root@dev-server
생성 후 목록 확인:
docker context ls
출력:
NAME ENDPOINT
default unix:///var/run/docker.sock
development ssh://root@dev-server
production ssh://root@prod-server
이후 필요한 환경으로 전환했습니다.
docker context use production
이제 동일한 Docker 명령어를 사용하면서도 정확한 서버에서 작업할 수 있게 되었습니다.
Docker Context Create를 활용하면 여러 서버를 관리하는 환경에서 작업 효율과 안정성을 크게 높일 수 있습니다.
Docker Context Create 사용 시 주의사항
Docker Context Create를 사용할 때는 다음 사항을 확인해야 합니다.
첫 번째는 Context 이름을 명확하게 지정해야 합니다.
운영 환경에서는 잘못된 Context 선택으로 서비스 장애가 발생할 수 있습니다.
두 번째는 생성 후 반드시 Endpoint 정보를 확인해야 합니다.
docker context inspect context-name
연결 대상 서버가 정확한지 확인하는 것이 중요합니다.
세 번째는 SSH 권한이 정상적으로 설정되어 있어야 합니다.
원격 서버 접근 권한이 없다면 Context는 생성되어도 사용할 수 없습니다.
네 번째는 사용하지 않는 Context가 계속 쌓이지 않도록 주기적으로 관리해야 합니다.
Best Practice
Docker Context Create를 사용할 때는 다음 방법을 추천합니다.
- 환경별 Context를 분리합니다.
- 서버 역할이 포함된 이름을 사용합니다.
- 생성 후 Inspect로 연결 정보를 확인합니다.
- 운영 서버 Context는 명확하게 관리합니다.
- SSH 기반 연결을 우선 고려합니다.
- 사용하지 않는 Context는 정리합니다.
이러한 방법을 적용하면 여러 Docker 환경을 더욱 안전하게 관리할 수 있습니다.
자주 묻는 질문
Docker Context Create는 서버를 생성하나요?
아닙니다.
Docker 서버를 만드는 것이 아니라 Docker CLI 연결 정보를 저장하는 설정을 생성합니다.
Context를 만들면 바로 Docker 명령을 실행하나요?
아닙니다.
생성 후 docker context use 명령으로 활성화해야 합니다.
여러 개의 Context를 만들 수 있나요?
가능합니다.
개발, 테스트, 운영 등 필요한 만큼 생성할 수 있습니다.
원격 서버는 반드시 Docker API를 열어야 하나요?
아닙니다.
SSH 기반 Context를 사용하면 Docker API 포트를 외부에 공개하지 않고 관리할 수 있습니다.
마무리
Docker Context Create는 여러 Docker 환경을 관리하기 위한 기본 설정 단계입니다.
원격 Docker 서버, 개발 환경, 운영 환경을 각각 Context로 구성하면 하나의 Docker CLI에서 다양한 서버를 안전하게 관리할 수 있습니다.
특히 운영 환경에서는 SSH 기반 Context를 활용하고, 생성 후 docker context inspect로 연결 정보를 확인하는 습관을 가지면 서버 관리 실수를 줄이고 더욱 안정적인 Docker 운영이 가능합니다.