docker context import 명령어를 사용하여 컨텍스트 가져오기

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker context import 명령어를 효과적으로 사용하는 방법을 배우게 됩니다. 먼저 Docker 컨텍스트를 파일로 생성하고 내보내어 컨텍스트 구성을 패키징하는 방법을 시연합니다.

내보내기 후에는 이 컨텍스트를 내보낸 파일과 표준 입력을 통해 Docker 로 다시 가져오는 연습을 할 것입니다. 마지막으로, 가져온 컨텍스트가 Docker 환경 내에서 올바르게 인식되고 사용 가능한지 확인합니다.

Docker 컨텍스트 생성 및 내보내기

이 단계에서는 Docker 컨텍스트를 생성하고 파일로 내보내는 방법을 배우겠습니다. Docker 컨텍스트는 서로 다른 Docker 데몬에 대한 연결을 관리하는 방법입니다. 기본적으로 Docker 는 로컬 데몬에 연결됩니다. 하지만 원격 데몬 또는 Docker Swarm 이나 Kubernetes 와 같은 다른 환경에 연결하기 위해 컨텍스트를 생성할 수 있습니다.

먼저, my-context라는 새 Docker 컨텍스트를 생성해 보겠습니다. 이 컨텍스트를 구성하여 기본 로컬 Docker 데몬에 연결하도록 하겠습니다.

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

이 명령어는 my-context라는 새 컨텍스트를 생성하고 Docker 호스트를 로컬 데몬의 기본 Unix 소켓으로 지정합니다.

다음으로, 새로 생성된 이 컨텍스트를 my-context.tar.gz라는 파일로 내보내겠습니다.

docker context export my-context -o ~/project/my-context.tar.gz

이 명령어는 my-context~/project 디렉토리에 있는 tar.gz 파일로 내보냅니다. -o 플래그는 출력 파일 경로를 지정합니다.

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

ls ~/project/

출력에 my-context.tar.gz가 표시되어야 합니다.

파일에서 내보낸 컨텍스트 가져오기

이전 단계에서 Docker 컨텍스트를 my-context.tar.gz라는 파일로 내보냈습니다. 이 단계에서는 이 컨텍스트를 파일에서 Docker 로 다시 가져오겠습니다.

가져오기 전에, 현재 존재하지 않는 컨텍스트를 가져오는 것을 시뮬레이션하기 위해 기존의 my-context를 먼저 제거해 보겠습니다.

docker context rm my-context

이 명령어는 my-context라는 Docker 컨텍스트를 제거합니다. 컨텍스트를 다시 나열하여 제거되었는지 확인할 수 있습니다.

docker context ls

더 이상 목록에 my-context가 표시되지 않아야 합니다.

이제 ~/project/my-context.tar.gz 파일에서 컨텍스트를 가져오겠습니다.

docker context import my-context-from-file ~/project/my-context.tar.gz

이 명령어는 지정된 파일에서 컨텍스트를 가져오고 가져온 컨텍스트의 이름을 my-context-from-file로 지정합니다.

가져오기가 완료되면 Docker 컨텍스트를 다시 나열하여 새로 가져온 컨텍스트를 확인할 수 있습니다.

docker context ls

이제 컨텍스트 목록에 my-context-from-file이 표시되어야 합니다.

stdin 에서 내보낸 컨텍스트 가져오기

이전 단계에서는 Docker 컨텍스트를 파일에서 가져왔습니다. 컨텍스트를 가져오는 또 다른 방법은 내보낸 컨텍스트 데이터를 표준 입력 (stdin) 을 통해 docker context import 명령으로 직접 파이핑하는 것입니다. 이는 먼저 파일을 저장하지 않고 컨텍스트를 가져오려는 경우에 유용합니다.

먼저, 충돌을 방지하기 위해 이전 단계에서 가져온 컨텍스트를 제거해 보겠습니다.

docker context rm my-context-from-file

이제 cat 명령을 사용하여 my-context.tar.gz 파일의 내용을 읽고 이를 docker context import 명령으로 파이핑합니다.

cat ~/project/my-context.tar.gz | docker context import my-context-from-stdin -

이 명령어에서 cat ~/project/my-context.tar.gz는 파일의 내용을 읽습니다. 파이프 기호 |cat 명령의 출력을 docker context import 명령의 입력으로 보냅니다. docker context import 명령의 끝에 있는 -는 표준 입력에서 컨텍스트 데이터를 읽도록 지시합니다. 가져온 컨텍스트의 이름을 my-context-from-stdin으로 지정하고 있습니다.

명령이 완료되면 Docker 컨텍스트를 나열하여 컨텍스트가 stdin 에서 가져왔는지 확인할 수 있습니다.

docker context ls

이제 컨텍스트 목록에 my-context-from-stdin이 표시되어야 합니다.

가져온 컨텍스트 확인

이전 단계에서 파일과 표준 입력을 사용하여 Docker 컨텍스트를 생성, 내보내기 및 가져왔습니다. 이 마지막 단계에서는 가져온 컨텍스트가 기능적인지, Docker 데몬과 상호 작용하는 데 사용할 수 있는지 확인합니다.

먼저, 사용 가능한 컨텍스트를 나열하여 my-context-from-filemy-context-from-stdin이 모두 있는지 확인해 보겠습니다.

docker context ls

출력에 두 컨텍스트가 모두 표시되어야 합니다.

이제 표준 입력에서 가져온 컨텍스트인 my-context-from-stdin으로 전환해 보겠습니다.

docker context use my-context-from-stdin

이 명령어는 현재 Docker 컨텍스트를 my-context-from-stdin으로 설정합니다. 이후의 모든 Docker 명령어는 이제 이 컨텍스트를 사용하여 Docker 데몬에 연결합니다.

컨텍스트가 올바르게 작동하는지 확인하기 위해 실행 중인 컨테이너를 나열하는 것과 같은 간단한 Docker 명령을 실행해 보겠습니다. 로컬 Docker 데몬에 연결하고 있으므로 이 명령은 컨텍스트를 지정하지 않고 docker ps를 실행하는 것과 동일한 출력을 표시해야 합니다.

docker ps

컨텍스트가 올바르게 구성된 경우 이 명령이 성공적으로 실행되고 실행 중인 컨테이너 목록 (있는 경우) 을 표시해야 합니다.

마지막으로, 기본 컨텍스트로 다시 전환해 보겠습니다.

docker context use default

이 명령어는 현재 Docker 컨텍스트를 기본 로컬 데몬으로 다시 전환합니다.

요약

이 랩에서는 Docker 컨텍스트를 생성, 내보내기 및 가져오기를 통해 관리하는 방법을 배웠습니다. 먼저 로컬 데몬에 연결하도록 구성된 my-context라는 새 Docker 컨텍스트를 생성한 다음 이 컨텍스트를 tar.gz 파일로 내보냈습니다.

내보내기 후, 컨텍스트를 Docker 로 다시 가져오는 연습을 했습니다. 먼저 새 컨텍스트를 가져오는 것을 시뮬레이션하기 위해 원래 컨텍스트를 제거한 다음, docker context import 명령을 사용하여 이전에 생성된 파일에서 컨텍스트를 성공적으로 가져왔으며, 이를 구별하기 위해 새 이름을 지정했습니다.