Docker를 여러 환경에서 운영하다 보면 하나의 Docker Engine만 사용하는 것이 아니라 개발 서버, 테스트 서버, 운영 서버 등 여러 Docker 환경을 관리해야 하는 경우가 많습니다.
예를 들어 로컬 PC에서는 개발용 Docker를 사용하고, 별도의 원격 서버에서는 운영용 Docker를 사용하는 경우 매번 접속 정보를 변경하는 것은 매우 불편합니다.
Docker에서는 이러한 문제를 해결하기 위해 Context 기능을 제공합니다.
Docker Context Use는 현재 Docker CLI가 사용할 Docker Context를 변경하는 명령어입니다. 한 번의 명령으로 로컬 Docker 환경에서 원격 Docker 서버로 전환하거나, 개발 환경에서 운영 환경으로 쉽게 변경할 수 있습니다.
이번 글에서는 Docker Context Use의 개념부터 기본 사용법, Context 전환 방법, 실무 활용 방법까지 자세히 알아보겠습니다.
Docker Context Use란 무엇인가?
Docker Context Use는 현재 활성화된 Docker Context를 변경하는 명령어입니다.
Docker CLI는 현재 선택된 Context의 Docker Engine과 통신합니다.
즉, Context를 변경하면 같은 Docker 명령어라도 실행되는 대상 서버가 변경됩니다.
예:
docker ps
현재 Context가 개발 서버라면 개발 서버의 컨테이너 목록이 출력되고,
운영 서버 Context로 변경하면 운영 서버의 컨테이너 목록이 출력됩니다.
Docker Context Use는 언제 사용하는가?
다음과 같은 상황에서 자주 사용합니다.
- 개발 서버와 운영 서버 전환
- 여러 Docker 서버 관리
- 원격 Docker Engine 사용
- 테스트 환경 변경
- Docker Swarm 서버 관리
- DevOps 운영 작업
여러 Docker 환경을 관리하는 운영자에게 필수적인 기능입니다.
Docker Context 목록 확인하기
Context를 변경하기 전에 현재 생성된 Context를 확인합니다.
docker context ls
출력 예시:
NAME DESCRIPTION
default * Local Docker
development Development Server
staging Staging Server
production Production Server
별표(*)가 표시된 Context가 현재 사용 중인 환경입니다.
Docker Context Use 기본 사용법
가장 기본적인 사용 방법입니다.
docker context use production
출력:
production
Current context is now "production"
이제 모든 Docker 명령은 production Context의 Docker Engine에서 실행됩니다.
현재 Context 확인하기
변경 후 현재 Context를 확인합니다.
docker context show
출력:
production
현재 Docker CLI가 운영 서버를 바라보고 있다는 의미입니다.
Docker Context 전환 예제
개발 서버에서 운영 서버로 변경하는 과정입니다.
현재 상태:
development *
운영 서버로 변경:
docker context use production
확인:
docker context show
결과:
production
이제 Docker 명령은 운영 환경에서 실행됩니다.
일회성 Context 사용하기
현재 Context를 변경하지 않고 특정 명령만 다른 서버에서 실행할 수도 있습니다.
docker --context production ps
현재 설정은 유지하면서 운영 서버의 컨테이너 목록만 확인합니다.
이 방법은 실수 방지에 매우 유용합니다.
Context 전환 후 확인해야 하는 것
Context 변경 후에는 반드시 대상 서버를 확인하는 것이 좋습니다.
확인 방법:
docker context show
또는
docker info
를 사용하여 실제 Docker Engine 정보를 확인할 수 있습니다.
Docker Context Use 실무 활용 예제
Docker Context Use는 여러 Docker 환경을 관리할 때 가장 많이 사용하는 명령어 중 하나입니다. 개발 서버, 테스트 서버, 운영 서버를 하나의 PC에서 관리할 때 Context 전환만으로 원하는 환경에 연결할 수 있습니다.
운영 서버 Context로 변경하기
가장 기본적인 사용 방법입니다.
docker context use production
변경 후 확인합니다.
docker context show
출력:
production
현재 Docker CLI가 운영 서버를 사용하고 있습니다.
개발 서버로 다시 변경하기
개발 환경으로 전환합니다.
docker context use development
확인:
docker context show
결과:
development
이제 실행하는 Docker 명령은 개발 서버에서 동작합니다.
Context 변경 후 컨테이너 확인하기
Context 변경 후 실제 연결 서버를 확인합니다.
docker ps
예:
CONTAINER ID IMAGE STATUS
a12bc34 nginx Up 2 hours
출력되는 컨테이너 목록이 변경된 서버의 환경인지 확인할 수 있습니다.
Context 변경 없이 특정 서버 명령 실행하기
현재 Context를 유지하면서 다른 서버 명령만 실행할 수 있습니다.
docker --context production ps
현재 개발 환경을 유지하면서 운영 서버 상태만 확인할 수 있습니다.
운영 서버 작업 전 실수를 줄이는 좋은 방법입니다.
운영 서버 작업 전 안전 확인 과정
실제 운영 환경에서는 다음 순서로 확인하는 것을 추천합니다.
- 현재 Context 확인
docker context show
- Context 목록 확인
docker context ls
- 운영 Context 변경
docker context use production
- Docker 정보 확인
docker info
이 과정을 거치면 잘못된 서버에서 Docker 명령을 실행하는 실수를 줄일 수 있습니다.
Linux 서버 문제 해결
운영팀에서 개발 서버와 운영 서버를 동시에 관리하던 중 문제가 발생했습니다.
관리자가 컨테이너 재시작 명령을 실행했는데 예상과 다르게 다른 환경의 서비스가 재시작되었습니다.
확인 결과 현재 Context가 운영 서버로 변경된 상태에서 개발 작업을 진행하고 있었습니다.
먼저 현재 Context를 확인했습니다.
docker context show
결과:
production
개발 서버로 변경했습니다.
docker context use development
다시 확인:
docker context show
결과:
development
이후 개발 환경에서 정상적으로 작업을 진행할 수 있었습니다.
Docker Context Use는 여러 서버를 관리할 때 발생하는 실수를 줄여주는 매우 중요한 기능입니다.
Docker Context Use 사용 시 주의사항
Docker Context Use를 사용할 때는 다음 사항을 주의해야 합니다.
첫 번째는 Context 변경 즉시 모든 Docker 명령의 대상 서버가 바뀐다는 점입니다.
예상하지 못한 서버에서 명령이 실행될 수 있으므로 항상 현재 Context를 확인해야 합니다.
두 번째는 운영 서버 Context를 사용할 때 특히 주의해야 합니다.
컨테이너 삭제, 재시작, 이미지 삭제 같은 명령은 실제 운영 서비스에 영향을 줄 수 있습니다.
세 번째는 Context 이름을 명확하게 관리해야 합니다.
추천:
- production
- staging
- development
네 번째는 중요한 작업 전 docker info로 서버 정보를 확인하는 것이 안전합니다.
Best Practice
Docker Context Use를 사용할 때는 다음 방법을 추천합니다.
- 작업 전
docker context show를 실행합니다. - 운영 서버와 개발 서버 Context를 분리합니다.
- Context 이름을 명확하게 지정합니다.
- 중요한 명령은
--context옵션으로 먼저 테스트합니다. - 서버 변경 후 Docker 정보를 확인합니다.
- 사용하지 않는 Context는 정리합니다.
이러한 방법을 적용하면 여러 Docker 환경을 더욱 안전하게 운영할 수 있습니다.
자주 묻는 질문
Docker Context Use는 서버를 변경하나요?
아닙니다.
서버 자체를 변경하는 것이 아니라 Docker CLI가 연결할 Docker Engine만 변경합니다.
Context를 변경하면 컨테이너가 이동하나요?
아닙니다.
기존 컨테이너는 그대로 유지되며 명령 실행 대상만 변경됩니다.
현재 Context를 확인하는 방법은 무엇인가요?
다음 명령을 사용합니다.
docker context show
특정 명령만 다른 서버에서 실행할 수 있나요?
가능합니다.
--context 옵션을 사용하면 현재 Context를 유지하면서 원하는 서버에서 명령을 실행할 수 있습니다.
마무리
Docker Context Use는 여러 Docker 환경을 빠르게 전환할 수 있게 해주는 핵심 관리 명령어입니다.
개발 서버, 테스트 서버, 운영 서버를 동시에 관리하는 환경에서는 Context 전환 기능을 활용하면 서버 접속 과정을 줄이고 작업 효율을 크게 높일 수 있습니다.
특히 운영 환경에서는 현재 활성화된 Context를 반드시 확인하는 습관이 중요하며, docker context ls, docker context show, docker info를 함께 활용하면 더욱 안전한 Docker 운영이 가능합니다.