소개
이 랩에서는 docker context show 명령어를 사용하여 현재 활성화된 Docker 컨텍스트를 표시하는 방법을 배우게 됩니다. 먼저 로컬 Docker 데몬에 연결되는 기본 컨텍스트를 표시하는 것으로 시작합니다.
그 다음, 새로운 Docker 컨텍스트를 생성하고, 이 새로운 컨텍스트로 전환한 후 docker context show를 사용하여 변경 사항을 확인합니다. 마지막으로, 기본 컨텍스트로 다시 전환하고 현재 Docker 연결을 쉽게 확인할 수 있도록 docker context show 명령어를 셸 프롬프트에 통합하는 방법을 살펴봅니다.
기본 Docker 컨텍스트 표시
이 단계에서는 기본 Docker 컨텍스트를 표시하는 방법을 배우겠습니다. Docker 컨텍스트는 서로 다른 Docker 데몬에 연결하는 방법입니다. 기본적으로 Docker 는 로컬 머신에서 실행되는 Docker 데몬에 연결되는 default 컨텍스트를 사용합니다.
현재 Docker 컨텍스트를 표시하려면 docker context show 명령어를 사용할 수 있습니다.
docker context show
출력으로 default가 표시되어 현재 기본 Docker 컨텍스트를 사용하고 있음을 나타냅니다.
새로운 Docker 컨텍스트 생성
이 단계에서는 새로운 Docker 컨텍스트를 생성합니다. 새로운 컨텍스트를 생성하면 원격 머신 또는 다른 로컬 설정에 있을 수 있는 다른 Docker 데몬에 대한 연결 매개변수를 정의할 수 있습니다.
로컬 Docker 데몬에 연결되는 my-context라는 컨텍스트를 생성합니다. 로컬 연결에는 중복되어 보일 수 있지만, 컨텍스트 생성 프로세스를 보여줍니다.
새로운 컨텍스트를 생성하려면 docker context create 명령어를 사용하고 컨텍스트 이름을 입력합니다. 또한 --docker 플래그를 사용하여 Docker 데몬의 엔드포인트를 지정해야 합니다. 로컬 데몬의 경우 엔드포인트는 일반적으로 unix:///var/run/docker.sock입니다.
docker context create my-context --docker "unix:///var/run/docker.sock"
명령어를 실행한 후, my-context 컨텍스트가 생성되었다는 것을 나타내는 출력을 볼 수 있습니다.
컨텍스트가 생성되었는지 확인하려면 docker context ls 명령어를 사용하여 사용 가능한 모든 컨텍스트를 나열할 수 있습니다.
docker context ls
출력에 default 컨텍스트와 함께 my-context가 나열되어야 합니다.
새로운 Docker 컨텍스트로 전환 및 표시
이 단계에서는 이전 단계에서 생성한 새로운 Docker 컨텍스트로 전환한 다음, 현재 활성 컨텍스트를 표시하여 전환을 확인합니다.
다른 Docker 컨텍스트로 전환하려면 docker context use 명령어를 사용하고 사용하려는 컨텍스트의 이름을 입력합니다. 이 경우 컨텍스트 이름은 my-context입니다.
docker context use my-context
컨텍스트가 my-context로 전환되었음을 확인하는 출력을 볼 수 있습니다.
이제 docker context show 명령어를 사용하여 현재 Docker 컨텍스트를 다시 표시하여 실제로 my-context를 사용하고 있는지 확인해 보겠습니다.
docker context show
이 명령의 출력은 이제 my-context여야 하며, 이는 전환이 성공했음을 나타냅니다.
기본 Docker 컨텍스트로 다시 전환 및 표시
이 단계에서는 기본 Docker 컨텍스트로 다시 전환합니다. 이는 다른 컨텍스트로 작업하다가 표준 로컬 Docker 데몬으로 돌아가고 싶을 때 유용합니다.
기본 컨텍스트로 다시 전환하려면 docker context use 명령어를 사용하고 기본 컨텍스트의 이름인 default를 입력합니다.
docker context use default
컨텍스트가 default로 다시 전환되었음을 확인하는 출력을 볼 수 있습니다.
이제 docker context show 명령어를 사용하여 현재 Docker 컨텍스트를 다시 표시하여 default 컨텍스트를 다시 사용하고 있는지 확인해 보겠습니다.
docker context show
이 명령의 출력은 이제 default여야 하며, 이는 전환이 성공했음을 확인합니다.
Docker 컨텍스트 표시를 쉘 프롬프트에 통합
이 단계에서는 docker context show 명령어를 쉘 프롬프트에 통합합니다. 이렇게 하면 현재 Docker 컨텍스트를 터미널 프롬프트에서 직접 볼 수 있으므로, 어떤 Docker 데몬과 상호 작용하고 있는지 쉽게 추적할 수 있습니다.
Zsh 쉘의 구성 파일인 홈 디렉토리의 .zshrc 파일을 수정합니다. 현재 Docker 컨텍스트를 가져오는 함수를 추가한 다음, 이 함수의 출력을 프롬프트 문자열에 포함시킵니다.
먼저 nano 편집기를 사용하여 .zshrc 파일을 엽니다.
nano ~/.zshrc
파일 끝으로 스크롤하여 다음 줄을 추가합니다.
## Function to get current Docker context
get_docker_context() {
docker context show 2> /dev/null
}
## Add Docker context to prompt
PROMPT='$(get_docker_context) %~ %## '
이 줄을 자세히 살펴보겠습니다.
get_docker_context():get_docker_context라는 새 쉘 함수를 정의합니다.docker context show 2>/dev/null: 함수 내부에서 이 명령은 현재 Docker 컨텍스트를 가져옵니다.2>/dev/null은 오류 출력을/dev/null로 리디렉션하여 Docker 가 실행되지 않거나 문제가 있는 경우 프롬프트가 지저분해지는 것을 방지합니다.PROMPT='$(get_docker_context) %~ %## ': 쉘 프롬프트의 모양을 정의하는PROMPT환경 변수를 설정합니다.$(get_docker_context):get_docker_context함수를 실행하고 출력을 프롬프트에 포함합니다.%~: 현재 작업 디렉토리를 표시하며, 홈 디렉토리는~로 축약됩니다.%#: 루트 사용자인 경우#을 표시하고 일반 사용자인 경우%를 표시합니다.
Ctrl + X, Y, Enter를 차례로 눌러 파일을 저장합니다.
현재 터미널 세션에 변경 사항을 적용하려면 .zshrc 파일을 소싱해야 합니다.
source ~/.zshrc
파일을 소싱한 후 쉘 프롬프트는 현재 디렉토리 앞에 현재 Docker 컨텍스트 (기본적으로 default) 를 표시해야 합니다.
my-context로 다시 전환하여 이를 테스트할 수 있습니다.
docker context use my-context
프롬프트가 업데이트되어 현재 디렉토리 다음에 my-context를 표시해야 합니다.
그런 다음 기본 컨텍스트로 다시 전환합니다.
docker context use default
프롬프트가 다시 default를 표시하도록 변경되어야 합니다.
요약
이 랩에서는 docker context show 명령어를 사용하여 Docker 컨텍스트를 관리하는 방법을 배웠습니다. 로컬 데몬에 연결하는 기본 Docker 컨텍스트를 표시하는 것으로 시작했습니다. 그런 다음 my-context라는 새 컨텍스트를 생성하여, 이 예제에서는 동일한 로컬 데몬이라 할지라도 다른 데몬에 대한 연결 매개변수를 정의하는 프로세스를 시연했습니다.
생성 후, docker context use를 사용하여 새로 생성된 컨텍스트로 전환하는 연습을 했고, docker context show로 활성 컨텍스트를 확인했습니다. 이 실습 경험을 통해 서로 다른 Docker 환경 간을 탐색하고 현재 연결 지점을 확인하는 방법에 대한 이해를 굳혔습니다.



