운영 서버의 컨테이너 상태를 보려고 매번 SSH로 접속해 docker ps를 치고 있나요. docker context를 쓰면 로컬 터미널에서 명령 하나로 원격 서버의 도커 데몬에 그대로 연결됩니다. SSH로 들어가 다시 명령을 칠 필요 없이, 내 노트북의 docker CLI가 원격 데몬을 바라보게 만드는 기능입니다.
context가 가리키는 것
도커는 **CLI(docker 명령)**와 **데몬(dockerd, 실제로 컨테이너를 돌리는 쪽)**이 분리돼 있습니다. 평소엔 둘 다 로컬에 있어 의식하지 못할 뿐입니다. context는 "CLI가 어느 데몬에 연결할지"를 담은 설정 묶음입니다.
| 구성 요소 | 내용 |
|---|---|
| name | context 이름(예: prod, default) |
| endpoint | 데몬 주소(SSH, TCP, 로컬 소켓) |
| 현재 여부 | docker context ls에서 * 표시 |
context를 바꾸면 그 뒤로 치는 모든 docker 명령이 새 데몬을 향합니다. 별도 도구 없이 CLI 하나로 여러 환경을 오가는 셈입니다.
SSH로 원격 context 만들기
가장 안전하고 간단한 방식은 SSH 기반입니다. 원격 서버에 SSH 접속만 되면 추가 포트를 열 필요가 없습니다.
# prod 라는 이름으로 원격 데몬 등록
docker context create prod \
--docker "host=ssh://deploy@10.0.1.20"
# 등록된 context 확인
docker context ls
이제 그 데몬으로 전환하면, 이후 명령은 전부 원격에서 실행됩니다.
docker context use prod
docker ps # 10.0.1.20 서버의 컨테이너 목록
docker logs api # 원격 컨테이너 로그를 로컬에서 조회
다시 로컬로 돌아오려면 기본 context로 전환합니다.
docker context use default
한 번만 쓸 때는 -c 플래그
전환하지 않고 단발성으로 다른 context를 쓰려면 -c(또는 --context) 플래그를 붙입니다. 현재 context는 그대로 둔 채 그 명령만 원격으로 보냅니다.
docker -c prod ps
주의할 점
원격 데몬에 연결됐다는 건 그 서버에서 컨테이너를 만들고 지울 권한을 가진다는 뜻입니다. prod context에서 docker rm이나 docker compose down을 치면 운영 컨테이너가 실제로 내려갑니다. 명령 전에 docker context show로 지금 어디에 연결돼 있는지 확인하는 습관이 사고를 막습니다.
docker context show
요점 정리
- docker context는 CLI가 어느 데몬에 연결할지를 담은 설정이다.
- SSH 엔드포인트로 원격 서버의 데몬을 로컬 CLI에서 다룰 수 있다.
docker context use로 전환하거나-c로 단발 실행한다.- 운영 context에서는 명령 전에
docker context show로 현재 위치를 확인한다.
로컬과 원격 context를 직접 오가며 컨테이너를 다뤄 보는 실습은 도커 트랙에서 할 수 있습니다 — 회원가입 없이 무료로.