소개
이 랩에서는 docker desktop engine use 명령어를 사용하여 컨테이너 유형을 전환하는 방법을 배우게 됩니다. 먼저 Docker 엔진의 목적과 현재 컨테이너 유형을 확인하는 방법을 이해하는 것으로 시작합니다.
그 후, Windows 컨테이너 (Windows 시스템에서) 로 전환한 다음 다시 Linux 컨테이너로 전환하는 방법을 살펴보겠습니다. 이 랩은 Docker CLI 를 사용하여 컨테이너 환경을 관리하는 실습 경험을 제공합니다.
docker desktop engine use 의 목적 이해
이 단계에서는 Docker 엔진의 목적을 이해합니다. Docker 는 컨테이너화를 사용하여 애플리케이션의 배포, 확장 및 관리를 자동화할 수 있는 플랫폼입니다. 컨테이너는 코드와 모든 종속성을 패키징하여 애플리케이션이 한 컴퓨팅 환경에서 다른 환경으로 빠르고 안정적으로 실행되도록 하는 표준 소프트웨어 단위입니다.
Docker 엔진은 Docker 의 핵심 구성 요소입니다. 이는 다음과 같은 주요 구성 요소가 있는 클라이언트 - 서버 애플리케이션입니다.
- 데몬 프로세스 (daemon process) 라고 하는 장기 실행 프로그램 유형인 서버 (the
dockerdcommand). - 프로그램이 데몬과 통신하고 수행할 작업을 지시하는 데 사용할 수 있는 인터페이스를 지정하는 REST API.
- 명령줄 인터페이스 (CLI) 클라이언트 (the
dockercommand).
CLI 는 REST API 를 사용하여 스크립팅 또는 직접 CLI 명령을 통해 Docker 데몬을 제어합니다. 다른 많은 Docker 애플리케이션은 기본 API 및 CLI 를 사용합니다.
LabEx 환경에서는 Docker 엔진이 이미 설치되어 실행 중입니다. docker info 명령을 실행하여 이를 확인할 수 있습니다. 이 명령은 Docker 설치와 관련된 시스템 전체 정보를 표시합니다.
docker info
Docker 버전, 스토리지 드라이버 및 기타 정보에 대한 세부 정보를 보여주는 다음과 유사한 출력을 볼 수 있습니다.
Client:
Version: 20.10.21
API version: 1.41
Go version: go1.18.9
Git commit: baeda1f
Built: Tue Oct 25 18:01:17 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server:
Engine:
Version: 20.10.21
API version: 1.41 (minimum version 1.12)
Go version: go1.18.9
Git commit: 305620d
Built: Tue Oct 25 17:59:50 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.10
GitCommit: b34a5c8e5367b9d7e345e9371193898cdce23f40
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
... (more output)
이 출력은 Docker 엔진이 실행 중임을 확인하고 해당 구성에 대한 세부 정보를 제공합니다. Docker 엔진을 이해하는 것은 컨테이너 작업을 시작하는 첫 번째 단계입니다.
현재 컨테이너 유형 확인
이 단계에서는 LabEx 환경에서 Docker 엔진이 지원하는 현재 컨테이너 유형을 확인합니다. Docker 는 기본 운영 체제에 따라 다양한 유형의 컨테이너를 실행할 수 있습니다. Linux 에서는 Docker 가 주로 Linux 컨테이너를 실행합니다. Windows 에서는 Docker Desktop 을 통해 Linux 컨테이너와 Windows 컨테이너 간을 전환할 수 있습니다.
LabEx 환경에서는 Linux 가상 머신에서 실행 중입니다. 따라서 Docker 엔진은 Linux 컨테이너를 실행하도록 구성되어 있습니다. docker info 명령의 출력을 다시 검사하여 이를 확인할 수 있습니다. OSType 필드를 찾으십시오.
docker info
출력에서 다음과 유사한 줄을 볼 수 있습니다.
OSType: linux
이는 Docker 엔진이 현재 Linux 컨테이너를 실행하도록 구성되어 있음을 나타냅니다. 이는 Linux 시스템에서 기본적으로 예상되는 동작입니다.
더 자세히 설명하기 위해 간단한 Linux 컨테이너를 실행해 보겠습니다. 메시지를 출력하고 종료하는 매우 작은 이미지인 hello-world 이미지를 사용합니다. 먼저 이미지를 로컬 머신으로 가져와야 합니다.
docker pull hello-world
이미지가 가져와 다운로드되고 있음을 나타내는 출력을 볼 수 있습니다.
Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:f5233545e4356188889a389e18b407cd9f61f46056b1e172b338cd91f09e9e4c
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest
이제 docker run 명령을 사용하여 컨테이너를 실행합니다.
docker run hello-world
hello-world 컨테이너에서 출력된 메시지인 다음과 유사한 출력을 볼 수 있습니다.
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub
(assuming it was not already locally available).
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
이는 이 환경에서 Linux 컨테이너를 성공적으로 실행할 수 있음을 확인합니다.
Windows 컨테이너로 전환 (Windows 전용)
이 단계에서는 Windows 컨테이너로 전환하는 방법에 대해 논의합니다. 이 단계는 Windows 운영 체제에서 Docker Desktop 을 실행하는 경우에만 적용됩니다. LabEx 환경은 Linux 가상 머신이므로 여기에서 실제로 이 전환을 수행할 수 없습니다. 그러나 Windows 에서 Docker 를 사용하는 경우 이 개념을 이해하는 것이 중요합니다.
Windows 에서 Docker Desktop 은 기본적으로 Docker 엔진을 호스팅하고 Linux 컨테이너를 실행하기 위해 작은 Linux 가상 머신을 실행합니다. 이는 핵심 Docker 엔진이 원래 Linux 용으로 설계되었기 때문입니다. 그러나 Windows 는 네이티브 Windows 컨테이너 실행도 지원합니다.
Docker Desktop 이 설치된 Windows 머신에 있는 경우 일반적으로 시스템 트레이에서 Docker 아이콘을 마우스 오른쪽 버튼으로 클릭하고 "Switch to Windows containers"를 선택하여 Windows 컨테이너로 전환합니다. 이 작업은 Linux VM 대신 Windows 컨테이너 런타임을 사용하도록 Docker 데몬을 재구성합니다.
Windows 컨테이너로 전환되면 mcr.microsoft.com/windows/nanoserver와 같이 Windows 용으로 빌드된 이미지를 가져와 실행할 수 있습니다.
예를 들어, 전환 후 Windows 머신에서 다음을 실행할 수 있습니다.
docker pull mcr.microsoft.com/windows/nanoserver
docker run mcr.microsoft.com/windows/nanoserver cmd /c echo Hello from Windows Container!
출력은 다음과 같습니다.
Hello from Windows Container!
Linux 환경에 있으므로 Windows 컨테이너 이미지를 가져오거나 실행하려고 하면 실패합니다. 이 Linux VM 의 Docker 엔진은 Windows 컨테이너를 실행할 수 없습니다.
Windows 이미지를 가져오려고 시도하여 이를 시연해 보겠습니다.
docker pull mcr.microsoft.com/windows/nanoserver
Docker 데몬이 해당 이름의 Linux 이미지를 찾고 있으므로 이미지를 찾을 수 없거나 가져올 수 없음을 나타내는 오류 메시지가 표시될 수 있습니다.
Using default tag: latest
Error response from daemon: manifest for mcr.microsoft.com/windows/nanoserver:latest not found: manifest unknown: manifest unknown
이는 현재 환경이 Linux 컨테이너용으로 설정되어 있으며 Windows 컨테이너를 실행할 수 없음을 확인합니다.
따라서 이 LabEx 환경에서 Windows 컨테이너로 전환하기 위해 실행할 실질적인 명령은 없습니다. 이 단계는 Windows 에서 Docker 를 사용할 수 있는 사용자를 위한 개념적 정보를 제공합니다.
Linux 컨테이너로 다시 전환 (Windows 전용)
이 단계에서는 Linux 컨테이너로 다시 전환하는 방법에 대해 논의합니다. 이전 단계와 마찬가지로, 이는 Windows 운영 체제에서 Docker Desktop 을 사용하는 경우에만 관련이 있습니다. LabEx Linux 환경에서는 이미 Linux 컨테이너를 사용하고 있으므로 다시 전환하기 위해 필요한 작업이 없습니다.
이전에 Windows 컨테이너로 전환한 Windows 머신에서는 시스템 트레이에서 Docker 아이콘을 마우스 오른쪽 버튼으로 클릭하고 "Switch to Linux containers"를 선택하여 Linux 컨테이너로 다시 전환합니다. 이 작업은 Windows 컨테이너 런타임을 중지하고 Linux 컨테이너용 Docker 엔진을 호스팅하는 Linux 가상 머신을 다시 시작합니다.
Windows 머신에서 Linux 컨테이너로 다시 전환한 후에는 ubuntu 이미지와 같은 Linux 컨테이너 이미지를 다시 가져와 실행할 수 있습니다.
예를 들어, 다시 전환한 후 Windows 머신에서 다음을 실행할 수 있습니다.
docker pull ubuntu
docker run ubuntu echo Hello from Linux Container!
출력은 다음과 같습니다.
Hello from Linux Container!
Linux 환경에 있으므로 이미 Linux 컨테이너를 사용하고 있습니다. docker info 출력에서 OSType을 확인하여 다시 확인할 수 있습니다.
docker info
2 단계에서 본 것처럼 출력은 다음과 같이 표시됩니다.
OSType: linux
이는 이 LabEx 환경의 Docker 엔진이 Linux 컨테이너를 실행하도록 구성되어 있으며 다시 전환하기 위해 아무런 조치도 필요하지 않음을 확인합니다.
따라서 이 LabEx 환경에서 Linux 컨테이너로 다시 전환하기 위해 실행할 실질적인 명령은 없습니다. 이 단계는 이전 단계와 마찬가지로 Windows 에서 Docker 를 사용할 수 있는 사용자를 위한 개념적 정보를 제공합니다.
요약
이 랩에서는 컨테이너화를 위한 Docker 플랫폼의 핵심 구성 요소인 Docker 엔진의 목적을 이해하는 것으로 시작했습니다. Docker 엔진은 데몬 프로세스, REST API 및 명령줄 인터페이스 (CLI) 로 구성되어 있음을 배웠습니다. docker info 명령을 사용하여 Docker 설치 및 실행 상태를 확인했으며, 이 명령은 Docker 환경에 대한 자세한 시스템 전체 정보를 제공했습니다.
초기 이해를 바탕으로 Docker 엔진에서 사용 중인 현재 컨테이너 유형을 확인했습니다. Windows 사용자를 위해 이 랩에서는 컨테이너 유형을 Windows 컨테이너로 전환하고, 이어서 Linux 컨테이너로 다시 전환하는 과정을 안내하여 Docker Desktop 내에서 다양한 컨테이너 환경을 관리하는 방법을 보여주었습니다.



