본문 바로가기
DevOps/Docker

[Docker] Windows 도커 설치

by 마이자몽 🌻♚ 2021. 10. 6.

Windows와 Docker

이번 글에서는 Windows 도커 설치하는 내용을 다룬다. Docker는 리눅스를 기반으로 하기 때문에 리눅스 운영체제 위에서 돌아가야한다. Linux 계열 이외의 운영체제에서 도커를 사용하기 위해서는 다른 툴을 이용해야한다.

 

Windows 운영환경에서 도커를 사용하기 위한 2가지 방법이 존재한다.

  • Hyper-V 옵션 –> Bare Metal Hypervisor 사용
  • Docker Toolbox –> Hosted Hypervisor 사용 (Deprecated)

둘의 차이는

 

  • Hyper-V 옵션 : OS가 자체 가상화를 지원
  • Docker Toolbox : VMWare, VirtualBox와 같은 Hosted Hypervisor를 통해 가상화해서 사용하는 것이다.

즉, Linux를 가상화해서 그 위에 도커를 띄우는 것 이다.

 

 

Docker Toolbox Deprecated

Docker Toolbox는 Windows나 맥 운영체제를 사용하는 사용자들이 편하게 Docker를 사용하기 위해 개발이 되었다. Windows 10 이전에는 하드웨어 단에서 가상화를 지원하지 않아 VMware나 Virtualbox와 같은 Hosted Hypervisor를 이용해서 도커를 기동했다.

 

그러나, Windows 10부터 Hyper-V(하드웨어 가상화) 기능을 지원했고 대부분의 사용자가 Windows 10 버전으로 넘어가면서 Docker는 더 이상 Docker Toolbox를 지원하지 않기로 결정했다. Virtualbox 6.0 이후로 부터는 Hyper-V와 병행해서 실행이 가능해져 Docker와 Virtualbox를 같이 사용할 수도 있게 되었다. Windows Home 유저는 WSL 2를 사용할 수 있어 Docker Desktop은 이를 이용해서 Docker Desktop on Windows Home을 제공한다.

 

이러한 변화와 함께 Docker Toolbox는 Deprecated 되었고 Windows 환경에 Docker 설치를 위해 Docker Desktop on Windows 만 지원한다.

 

 

Docker Desktop on Windows 설치

Install Docker Desktop on Windows

 

Install Docker Desktop on Windows

 

docs.docker.com

  • Windows 10 이상에서 Docker 설치 가능
  • WSL 2를 backend에서 실행해서 Linux환경에 Docker를 구동한다.

 

 

WSL 2 활성화

WSL2를 이용하면 Windows 환경에서도 Linux를 이용할 수 있고 Docker를 사용할 수 있다.

 

Enable WSL 2

 

Install WSL

Install Windows Subsystem for Linux with the command, wsl --install. Use a Bash terminal on your Windows machine run by your preferred Linux distribution - Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin, Alpine, and more are available.

docs.microsoft.com

실행해야할 명령들은 관리자 권한으로 PowerShell을 실행해서 작업한다.

 

 

Linux용 Windows 하위 시스템 활성화

PS C:\Windows\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.844

이미지 버전: 10.0.19042.1165

기능을 사용하도록 설정하는 중
[==========================100.0%==========================]
작업을 완료했습니다.

Windows 옵션을 활성화하는 명령

 

 

가상머신 기능 활성화

PS C:\Windows\system32> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.844

이미지 버전: 10.0.19042.1165

기능을 사용하도록 설정하는 중
[==========================100.0%==========================]
작업을 완료했습니다.

Virtual Machine Platform 기능을 활성화한다.
WSL 활성화를 완료시키기 위해 재부팅 진행 한다.


Linux 커널 업데이트 패키지 다운로드

WSL2 Linux kernel update package for x64 machines

설치를 진행한다.

 

 

WSL2를 기본 버전으로 설정

PS C:\Windows\system32> wsl --set-default-version 2
WSL 2와의 주요 차이점에 대한 자세한 내용은 https://aka.ms/wsl2를 참조하세요
작업을 완료했습니다.

WSL2를 기본 버전으로 설정
혹시나 ‘wsl’ 명령어를 인실할 수 없다는 오류가 발생하면 power shell이 아닌 명령 프롬트(cmd)에서 실행해본다.
그대로 문제가 있다면 Windows Update를 받거나 요구사항이 충족되지 않은 것이다.

 

 

리눅스 배포를 선택해서 설치

Microsoft Store

 

Microsoft Store에서 Linux 배포를 설치한다.
해당 예시에서는 Ubuntu를 설치하고 실행한다.

 

 

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:

계정을 생성해주면 WSL2를 사용할 준비가 완료되었고 Docker 설치도 모두 준비되었다.

 

 

Docker 설치

Windows 환경에 Docker 설치하기 위해 Docker Hub에서 제공하는 Docker Desktop for Windows 설치파일을 다운받아서 실행한다. 설치에 아래 컴포넌트들이 제공된다.

 

 

  • Docker Engine
  • Docker CLI client
  • Docker Compose
  • Docker Content Trust
  • Kubernetes
  • Credential Helper

설치파일을 실행해서 설치를 진행한다.
WSL2를 요구하는 것을 확인할 수 있다.

 

 

설치가 완료되면 닫고 로그아웃한다.

 

 

설치한 Docker 실행파일을 실행하고 엔진을 시작한다.

 

 

Docker 정상 설치 확인

PS C:\WINDOWS\system32> docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

PS C:\WINDOWS\system32> docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:7d91b69e04a9029b99f3585aaaccae2baa80bcf318f4a5d2165a9898cd2dc0a1
Status: Downloaded newer image for hello-world:latest

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.
    (amd64)
 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

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Windows에서 클라이언트 형태로 제공되기 때문에 GUI 프로그램에서 제어를 할수 있지만… CLI 형태로 확인한다. 다시 Powershell을 실행해서 Docker 명령을 이용해서 확인한다. 해당 예시에서는 hello-world 이미지를 받아서 컨테이너가 생성되는지 확인했다. Windows 환경에 Docker 설치가 정상적으로 완료된 것을 확인할 수 있다.

태그

,

댓글0