docker context rm 명령어를 사용하여 컨텍스트 제거 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 Docker 컨텍스트를 관리하는 방법을 배우고, 특히 제거에 중점을 둡니다. 먼저 새로운 Docker 컨텍스트를 생성하여 컨텍스트 추가 과정을 이해합니다. 그런 다음, 기존 컨텍스트를 나열하여 사용 가능한 구성을 확인하고 현재 활성 컨텍스트를 식별하는 방법을 배웁니다. 랩의 핵심은 docker context rm 명령을 사용하여 특정 컨텍스트를 제거하는 것입니다. 마지막으로, 강제 옵션 없이 현재 활성 컨텍스트를 제거하려는 시도의 동작을 살펴보고, 강제 옵션을 사용하여 성공적으로 제거하는 방법을 탐구합니다.

새로운 Docker 컨텍스트 생성

이 단계에서는 새로운 Docker 컨텍스트를 생성하는 방법을 배웁니다. Docker 컨텍스트는 서로 다른 Docker 데몬에 대한 연결을 관리하는 방법입니다. 기본적으로 Docker 는 로컬 Docker 데몬에 연결하는 default 컨텍스트를 사용합니다. 원격 Docker 데몬 또는 다른 오케스트레이션 도구에 연결하기 위해 새로운 컨텍스트를 생성할 수 있습니다.

새로운 Docker 컨텍스트를 생성하려면 docker context create 명령을 사용합니다. 기본 구문은 docker context create <context_name>입니다. my-context라는 새로운 컨텍스트를 생성해 보겠습니다.

docker context create my-context

명령을 실행한 후, 컨텍스트가 성공적으로 생성되었음을 나타내는 출력을 볼 수 있습니다.

my-context
Successfully created context "my-context"

이 명령은 Docker 구성 디렉토리에 새로운 컨텍스트 구성 파일을 생성합니다. 이 컨텍스트는 현재 default 컨텍스트와 동일한 로컬 Docker 데몬을 가리킵니다. 이후 단계에서는 서로 다른 Docker 환경에 연결하도록 컨텍스트를 구성하는 방법을 살펴볼 것입니다.

기존 Docker 컨텍스트 나열

이 단계에서는 기존 Docker 컨텍스트를 나열하는 방법을 배웁니다. 이는 어떤 컨텍스트를 사용할 수 있는지, 그리고 현재 활성 상태인 컨텍스트가 무엇인지 확인하는 데 유용합니다.

Docker 컨텍스트를 나열하려면 docker context ls 명령을 사용합니다.

docker context ls

명령을 실행한 후, 사용 가능한 컨텍스트를 나열하는 테이블을 볼 수 있습니다. 출력에는 컨텍스트 이름, 설명, 엔드포인트 (endpoint), 그리고 현재 컨텍스트인지 여부가 포함됩니다. 이전 단계에서 생성한 default 컨텍스트와 my-context를 볼 수 있습니다. 컨텍스트 이름 옆의 *는 현재 활성 컨텍스트임을 나타냅니다.

NAME                DESCRIPTION                               DOCKER ENDPOINT                  KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST environment           unix:///var/run/docker.sock
my-context          Docker context "my-context"               unix:///var/run/docker.sock

이 명령은 연결할 수 있는 다양한 Docker 환경을 추적하는 데 도움이 됩니다.

특정 Docker 컨텍스트 삭제

이 단계에서는 특정 Docker 컨텍스트를 제거하는 방법을 배웁니다. 이는 더 이상 필요하지 않은 컨텍스트를 정리하는 데 유용합니다.

Docker 컨텍스트를 제거하려면 docker context rm 명령을 사용하고, 제거하려는 컨텍스트의 이름을 입력합니다. 이전 단계에서 생성한 my-context를 제거해 보겠습니다.

docker context rm my-context

명령을 실행한 후, 컨텍스트 제거를 확인하는 출력을 볼 수 있습니다.

my-context

이제 컨텍스트를 다시 나열하여 my-context가 제거되었는지 확인해 보겠습니다.

docker context ls

출력에는 이제 default 컨텍스트만 표시되어야 합니다.

NAME                DESCRIPTION                               DOCKER ENDPOINT                  KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST environment           unix:///var/run/docker.sock

이것은 특정 Docker 컨텍스트를 제거하는 방법을 보여줍니다.

강제 삭제 없이 현재 Docker 컨텍스트 삭제 시도

이 단계에서는 강제 옵션을 사용하지 않고 현재 활성 Docker 컨텍스트를 제거하려고 시도합니다. 이는 현재 사용 중인 컨텍스트를 제거하려 할 때 Docker 의 동작을 보여줍니다.

먼저, 현재 컨텍스트를 확인해 보겠습니다.

docker context ls

default 컨텍스트가 별표 (*) 로 표시되어 현재 컨텍스트임을 확인할 수 있습니다.

이제 docker context rm 명령을 사용하여 default 컨텍스트를 제거해 보겠습니다.

docker context rm default

다음과 유사한 오류 메시지가 표시될 것입니다.

Error: context "default" is currently in use

이 오류는 현재 Docker 작업을 중단하지 않도록 Docker 가 현재 활성 상태인 컨텍스트를 제거하는 것을 방지하기 때문에 발생합니다. 현재 컨텍스트를 제거하려면 다음 단계에서 다룰 강제 옵션을 사용해야 합니다.

현재 Docker 컨텍스트 강제 삭제

이 단계에서는 현재 활성 Docker 컨텍스트를 강제로 제거하는 방법을 배웁니다. 이전 단계에서 보았듯이, 강제 옵션을 사용하지 않고는 현재 컨텍스트를 제거할 수 없습니다.

현재 Docker 컨텍스트를 강제로 제거하려면, docker context rm 명령과 함께 -f 또는 --force 플래그를 사용하고, 컨텍스트 이름을 입력합니다. default 컨텍스트를 강제로 제거해 보겠습니다.

docker context rm -f default

명령을 실행한 후, 컨텍스트 제거를 확인하는 출력을 볼 수 있습니다.

default

이제 컨텍스트를 다시 나열하여 default 컨텍스트가 제거되었는지 확인해 보겠습니다.

docker context ls

사용 가능한 컨텍스트가 없거나, Docker 가 다른 기본 컨텍스트 (존재하는 경우) 로 전환되었다는 메시지가 표시될 것입니다. 이 환경에서는 default 컨텍스트를 제거하면 활성 컨텍스트가 없으므로, 이후 컨텍스트를 나열하려고 할 때 오류가 발생합니다.

Error: No contexts available. Create a context, or use --help for more information.

이것은 현재 Docker 컨텍스트를 강제로 제거하는 방법을 보여줍니다.

요약

이 랩에서는 Docker 컨텍스트를 관리하는 방법을 배웠습니다. 먼저, docker context create 명령을 사용하여 my-context라는 새 컨텍스트를 생성했습니다. 이를 통해 서로 다른 Docker 데몬에 대한 연결을 정의할 수 있습니다. 그런 다음, docker context ls 명령을 사용하여 사용 가능한 컨텍스트를 나열하고, 새로 생성된 my-context를 기본 컨텍스트와 함께 확인했으며, 별표로 표시된 현재 활성 컨텍스트를 식별했습니다.

이 랩은 docker context rm을 사용하여 특정 Docker 컨텍스트를 제거하는 방법을 보여주는 것으로 이어집니다. 또한 강제 옵션 없이 현재 활성 컨텍스트를 제거하려는 시도의 동작을 살펴보고, 마지막으로 현재 Docker 컨텍스트를 강제로 제거하는 방법을 배웁니다.