docker context export 명령을 사용하여 컨텍스트 내보내는 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker context export 명령을 사용하여 Docker 컨텍스트를 내보내는 방법을 배우게 됩니다. 먼저 새로운 Docker 컨텍스트를 생성하는 것으로 시작하여 Docker CLI 를 다른 Docker 데몬에 연결할 수 있도록 합니다.

새로운 컨텍스트를 생성한 후, 이 컨텍스트를 내보내는 연습을 할 것입니다. 나중에 사용하거나 공유하기 위해 컨텍스트를 파일로 내보내는 방법과 컨텍스트를 표준 출력 (STDOUT) 으로 직접 내보내는 방법을 배우게 됩니다. 이 실습을 통해 Docker 환경을 관리하고 공유하기 위한 docker context export 명령의 실제 적용을 보여줄 것입니다.

새로운 Docker 컨텍스트 생성

이 단계에서는 새로운 Docker 컨텍스트를 생성하는 방법을 배우겠습니다. Docker 컨텍스트는 Docker CLI 를 다른 Docker 데몬에 연결하는 방법입니다. 이는 원격 머신 또는 다른 환경에서 Docker 를 관리하려는 경우 유용할 수 있습니다.

기본적으로 Docker CLI 는 로컬 Docker 데몬에 연결됩니다. docker context ls 명령을 사용하여 현재 컨텍스트를 확인할 수 있습니다.

docker context ls

기본 컨텍스트가 활성 상태임을 나타내는 다음과 유사한 출력을 볼 수 있습니다.

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

이제 새로운 컨텍스트를 생성해 보겠습니다. my-context라는 컨텍스트를 생성할 것입니다. 이 예제에서는 여전히 로컬 Docker 데몬을 가리키지만, 실제 시나리오에서는 원격 데몬을 가리킬 것입니다.

docker context create 명령을 사용하고 컨텍스트 이름과 엔드포인트를 지정합니다.

docker context create my-context --docker "host=unix:///var/run/docker.sock"

컨텍스트를 생성한 후 확인 메시지가 표시됩니다.

my-context
Successfully created context "my-context"

이제 컨텍스트를 다시 나열하여 새로 생성된 컨텍스트를 확인해 보겠습니다.

docker context ls

이제 defaultmy-context가 모두 나열된 것을 볼 수 있습니다.

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

새로운 컨텍스트로 전환하려면 docker context use 명령을 사용하고 컨텍스트 이름을 지정합니다.

docker context use my-context

컨텍스트 전환을 확인하는 메시지가 표시됩니다.

my-context
Current context is now "my-context"

마지막으로, my-context가 별표 *로 표시된 활성 컨텍스트인지 확인하기 위해 컨텍스트를 다시 한 번 나열해 보겠습니다.

docker context ls

출력은 my-context가 활성 컨텍스트임을 보여줍니다.

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

Docker 컨텍스트를 파일로 내보내기

이 단계에서는 Docker 컨텍스트를 파일로 내보내는 방법을 배우겠습니다. 컨텍스트를 내보내면 구성을 파일로 저장할 수 있으며, 이 파일을 다른 머신에서 공유하거나 가져올 수 있습니다. 이는 원격 Docker 환경에 대한 접근을 공유하는 데 특히 유용합니다.

이전 단계에서 생성한 my-context를 내보낼 것입니다. docker context export 명령을 사용하고, 컨텍스트 이름과 원하는 출력 파일 경로를 지정합니다. ~/project 디렉토리에 my-context.dockercontext라는 파일로 내보낼 것입니다.

docker context export my-context > ~/project/my-context.dockercontext

이 명령은 my-context의 구성을 지정된 파일로 내보냅니다. 명령이 성공하면 콘솔에 출력이 없습니다.

파일이 생성되었는지 확인하기 위해 ls 명령을 사용하여 ~/project 디렉토리의 파일을 나열할 수 있습니다.

ls ~/project/

파일 목록에 my-context.dockercontext가 표시되어야 합니다.

cat 명령을 사용하여 내보낸 컨텍스트 파일의 내용을 볼 수도 있습니다.

cat ~/project/my-context.dockercontext

출력은 my-context의 구성을 JSON 형식으로 보여줍니다. 컨텍스트 이름 및 Docker 엔드포인트와 같은 정보가 포함됩니다.

{
  "Name": "my-context",
  "Metadata": null,
  "Endpoints": {
    "docker": {
      "Host": "unix:///var/run/docker.sock",
      "SkipTLSVerify": false
    }
  },
  "TLSMaterial": null
}

이 내보낸 파일은 이제 docker context import 명령을 사용하여 다른 머신에서 이 컨텍스트를 가져오는 데 사용할 수 있습니다.

Docker 컨텍스트를 STDOUT 으로 내보내기

이 단계에서는 Docker 컨텍스트를 표준 출력 (STDOUT) 으로 직접 내보내는 방법을 배우겠습니다. 이는 컨텍스트 구성을 빠르게 보거나 파일로 저장하지 않고 다른 명령으로 파이프할 때 유용합니다.

이전과 마찬가지로, 이전에 생성한 my-context를 사용하여 docker context export 명령을 사용합니다. 이번에는 출력을 파일로 리디렉션하지 않습니다.

docker context export my-context

이 명령을 실행하면 my-context 구성의 JSON 표현이 터미널에 직접 출력됩니다.

{
  "Name": "my-context",
  "Metadata": null,
  "Endpoints": {
    "docker": {
      "Host": "unix:///var/run/docker.sock",
      "SkipTLSVerify": false
    }
  },
  "TLSMaterial": null
}

이 출력은 이전 단계에서 my-context.dockercontext 파일에 저장된 내용과 동일합니다. STDOUT 으로 내보내는 것은 컨텍스트 구성을 즉시 검사하는 편리한 방법입니다.

또한 이 출력을 추가 처리를 위해 다른 명령으로 파이프할 수도 있습니다. 예를 들어, JSON 을 구문 분석하기 위해 jq로 파이프하거나 특정 정보를 검색하기 위해 grep으로 파이프할 수 있습니다.

예를 들어, 내보낸 컨텍스트에서 Docker 엔드포인트를 찾으려면 다음과 같이 합니다.

docker context export my-context | grep "unix:///var/run/docker.sock"

이 명령은 컨텍스트를 STDOUT 으로 내보낸 다음 grep을 사용하여 "unix:///var/run/docker.sock"을 포함하는 줄을 찾습니다. 출력은 다음과 같습니다.

      "Host": "unix:///var/run/docker.sock",

이는 중간 파일을 생성하지 않고 명령줄에서 직접 컨텍스트 구성으로 쉽게 작업할 수 있는 방법을 보여줍니다.

요약

이 랩에서는 Docker 컨텍스트를 생성하고 관리하는 방법을 배웠습니다. 먼저 Docker 컨텍스트가 무엇인지 이해하고 docker context ls를 사용하여 기존 컨텍스트를 나열하는 방법부터 시작했습니다. 그런 다음 docker context create를 사용하여 my-context라는 새 컨텍스트를 생성하여 Docker 엔드포인트를 지정하는 방법을 시연했습니다. 마지막으로 docker context use를 사용하여 컨텍스트 간을 전환하는 연습을 했습니다.

컨텍스트 생성 및 전환에 이어 docker context export 명령을 살펴보았습니다. 특정 Docker 컨텍스트를 파일로 내보내는 방법을 배워 컨텍스트 구성을 쉽게 공유하거나 백업할 수 있도록 했습니다. 또한 컨텍스트 구성을 표준 출력으로 직접 내보내는 방법을 살펴 스크립팅 또는 즉시 사용에 대한 유연성을 제공했습니다. 이러한 단계는 서로 다른 Docker 데몬에 연결하기 위한 Docker 컨텍스트를 관리하고 내보내는 방법에 대한 포괄적인 이해를 제공했습니다.