Docker를 여러 환경에서 사용하다 보면 하나의 Docker Engine만 관리하는 것이 아니라 개발 서버, 테스트 서버, 운영 서버 등 여러 Docker 환경을 동시에 관리해야 하는 상황이 발생합니다.
이때 Docker Context를 사용하면 하나의 Docker CLI에서 여러 Docker Engine을 쉽게 전환할 수 있습니다.
하지만 Context가 여러 개 생성되면 현재 어떤 Context가 존재하는지, 어떤 서버와 연결되어 있는지, 현재 어떤 Context가 활성화되어 있는지 확인해야 합니다.
이럴 때 사용하는 명령어가 바로 docker context ls입니다.
Docker Context LS는 현재 Docker 환경에 등록된 모든 Context 목록을 확인하는 명령어입니다. Context 이름, 설명, Docker Endpoint, 현재 활성화된 Context 여부 등을 확인할 수 있어 여러 Docker 서버를 관리할 때 가장 기본적으로 사용하는 명령어입니다.
이번 글에서는 Docker Context LS의 개념부터 기본 사용법, 출력 결과 해석, 필터링 방법, 실무 활용 방법까지 자세히 알아보겠습니다.
Docker Context LS란 무엇인가?
Docker Context LS는 현재 생성되어 있는 Docker Context 목록을 출력하는 명령어입니다.
Docker CLI가 연결할 수 있는 모든 Docker 환경 정보를 확인할 수 있으며, 현재 사용 중인 Context도 쉽게 확인할 수 있습니다.
여러 서버를 관리하는 환경에서는 작업 전에 반드시 확인하는 것이 좋습니다.
Docker Context LS는 언제 사용하는가?
다음과 같은 상황에서 자주 사용합니다.
- 생성된 Context 확인
- 현재 연결된 Docker 서버 확인
- 운영·개발 환경 구분
- Context 전환 전 확인
- 잘못된 서버 작업 방지
- 원격 Docker 관리
특히 운영 서버 작업 전 현재 Context 확인은 매우 중요한 습관입니다.
Docker Context LS 기본 사용법
가장 기본적인 사용 방법입니다.
docker context ls
실행하면 현재 생성된 Context 목록이 출력됩니다.
예시는 다음과 같습니다.
NAME DESCRIPTION DOCKER ENDPOINT
default * Current DOCKER_HOST unix:///var/run/docker.sock
development ssh://user@dev-server
production ssh://user@prod-server
별표(*)가 표시된 Context가 현재 활성화된 Context입니다.
출력 결과 이해하기
Docker Context LS에서는 다음 정보를 확인할 수 있습니다.
NAME
Context 이름입니다.
Docker Context를 변경할 때 사용하는 이름입니다.
예:
docker context use production
DESCRIPTION
Context 설명입니다.
환경이나 서버 용도를 구분하기 위해 사용합니다.
DOCKER ENDPOINT
연결 대상 Docker Engine 주소입니다.
예:
로컬 Docker:
unix:///var/run/docker.sock
원격 Docker:
ssh://user@server
CURRENT 표시(*)
현재 활성화된 Context를 의미합니다.
Docker 명령어는 이 Context를 기준으로 실행됩니다.
현재 Context 확인하기
현재 사용 중인 Context만 확인하려면 다음 명령을 사용합니다.
docker context show
출력:
production
현재 Docker 명령이 실행되는 대상 환경을 빠르게 확인할 수 있습니다.
특정 Context 찾기
Context가 많아진 경우 목록에서 원하는 환경을 확인합니다.
docker context ls
예:
NAME DOCKER ENDPOINT
default unix:///var/run/docker.sock
staging ssh://user@staging
production * ssh://user@production
현재 운영 서버에 연결되어 있는지 확인할 수 있습니다.
Context 변경 전 확인하기
운영 서버 작업 전에는 반드시 현재 Context를 확인하는 것이 좋습니다.
docker context ls
확인 후:
docker context use production
과 같이 원하는 환경으로 변경합니다.
Docker Context LS와 Context 관리 흐름
일반적인 Context 관리 과정은 다음과 같습니다.
- Context 생성
docker context create production
- 목록 확인
docker context ls
- Context 변경
docker context use production
- 상세 정보 확인
docker context inspect production
이 순서로 관리하면 여러 Docker 서버를 안전하게 운영할 수 있습니다.
Docker Context LS 실무 활용 예제
Docker Context LS는 여러 Docker 서버를 관리하는 환경에서 현재 연결 상태를 확인하고 작업 대상을 정확하게 파악하기 위해 사용하는 핵심 명령어입니다.
현재 생성된 모든 Context 확인하기
가장 기본적인 사용 방법입니다.
docker context ls
현재 등록된 모든 Docker Context를 확인할 수 있습니다.
예:
NAME DESCRIPTION DOCKER ENDPOINT
default * Local Docker unix:///var/run/docker.sock
dev-server ssh://root@10.0.0.10
production ssh://root@10.0.0.20
별표(*)가 표시된 Context가 현재 Docker 명령이 실행되는 환경입니다.
현재 활성화된 Context 확인하기
현재 사용 중인 Context만 확인합니다.
docker context show
출력:
production
운영 서버에 연결되어 있는지 빠르게 확인할 수 있습니다.
운영 서버 작업 전 확인하기
운영 서버에서 작업하기 전 다음 명령으로 확인합니다.
docker context ls
출력:
NAME DOCKER ENDPOINT
default unix:///var/run/docker.sock
production * ssh://root@production-server
현재 운영 서버 Context가 활성화된 것을 확인한 후 작업을 진행합니다.
개발 서버와 운영 서버 전환하기
개발 서버로 변경:
docker context use development
운영 서버로 변경:
docker context use production
Context만 변경하면 동일한 Docker 명령을 다른 서버에서 실행할 수 있습니다.
Context 목록을 이용한 서버 관리
여러 환경을 관리하는 경우 다음과 같이 구성할 수 있습니다.
default
└─ 로컬 개발 환경
development
└─ 개발 서버
staging
└─ 테스트 서버
production
└─ 운영 서버
이렇게 환경별 Context를 나누면 서버 접속 실수를 줄일 수 있습니다.
특정 Context에서 명령 실행하기
현재 Context를 변경하지 않고 특정 서버에서 실행할 수도 있습니다.
docker --context production ps
운영 서버의 컨테이너 목록만 확인하고 다시 기존 Context를 유지할 수 있습니다.
Linux 서버 문제 해결
운영팀에서 여러 Docker 서버를 관리하던 중 잘못된 서버에서 컨테이너를 재시작하는 문제가 발생했습니다.
기존 방식은 서버마다 SSH 접속 후 Docker 명령을 실행하는 방식이었기 때문에 작업 대상 서버를 혼동하는 문제가 있었습니다.
이를 해결하기 위해 서버별 Docker Context를 구성했습니다.
개발 서버 Context:
docker context create development \
--docker host=ssh://root@dev-server
운영 서버 Context:
docker context create production \
--docker host=ssh://root@prod-server
이후 작업 전 항상 목록을 확인했습니다.
docker context ls
운영 작업 전:
docker context use production
확인:
docker ps
이제 현재 어떤 서버에서 Docker 명령이 실행되는지 명확하게 확인할 수 있어 운영 실수를 크게 줄일 수 있었습니다.
Docker Context LS 사용 시 주의사항
Docker Context LS를 사용할 때는 다음 사항을 알아두면 좋습니다.
첫 번째는 현재 활성화된 Context를 반드시 확인해야 합니다.
특히 운영 서버 작업 전에는 docker context ls 확인이 필수입니다.
두 번째는 Context 이름을 명확하게 지정해야 합니다.
추천 예:
- production
- staging
- development
세 번째는 Context가 변경되면 모든 Docker 명령의 대상 서버가 변경된다는 점을 기억해야 합니다.
네 번째는 사용하지 않는 Context는 정리하는 것이 좋습니다.
오래된 서버 정보가 남아 있으면 잘못된 대상으로 접속할 가능성이 있습니다.
Best Practice
Docker Context LS를 사용할 때는 다음 방법을 추천합니다.
- 작업 전 항상 현재 Context를 확인합니다.
- 운영 서버와 개발 서버 Context를 분리합니다.
- Context 이름을 환경 기준으로 지정합니다.
- 중요한 작업 전
docker context show를 실행합니다. - 사용하지 않는 Context는 삭제합니다.
- 서버 관리 문서에 Context 정보를 기록합니다.
이러한 방법을 적용하면 여러 Docker 환경을 더욱 안전하게 관리할 수 있습니다.
자주 묻는 질문
Docker Context LS는 어떤 정보를 보여주나요?
Context 이름, 설명, Docker Endpoint, 현재 활성화 여부를 보여줍니다.
별표(*)는 무엇인가요?
현재 Docker CLI가 사용 중인 활성 Context를 의미합니다.
Context를 변경하면 서버가 변경되나요?
네.
Docker 명령이 실행되는 대상 Docker Engine이 변경됩니다.
여러 개의 Docker 서버를 관리할 수 있나요?
가능합니다.
Context를 사용하면 하나의 PC에서 여러 Docker 서버를 쉽게 관리할 수 있습니다.
마무리
Docker Context LS는 여러 Docker 환경을 관리할 때 현재 연결 상태와 Context 목록을 확인하는 가장 기본적인 명령어입니다.
개발 서버, 테스트 서버, 운영 서버를 동시에 관리하는 환경에서는 작업 전 현재 Context를 확인하는 습관이 매우 중요합니다.
특히 운영 환경에서는 잘못된 서버에서 Docker 명령을 실행하는 실수를 방지하기 위해 docker context ls와 docker context show를 활용하는 것이 안전한 Docker 운영의 핵심입니다.