개발/Docker

[Docker]Windows 11 Pro에서 Docker 설치(Docker Desktop)

moonzoo 2024. 1. 26. 15:55

 

Docker?

Docker는 애플리케이션을 개발, 배포 및 실행하기 위한 플랫폼 및 도구 모음입니다. 주요 목적은 소프트웨어를 컨테이너라고 불리는 표준화된 유닛 내에서 패키징하여, 코드가 일관된 환경에서 실행될 수 있도록 하는 것입니다. Docker의 핵심 개념과 특징은 다음과 같습니다.

  1. 컨테이너:
    • Docker 컨테이너는 애플리케이션과 그 애플리케이션이 의존하는 라이브러리 및 기타 요소들을 함께 묶는 경량화된 실행 환경입니다.
    • 컨테이너는 각각 독립된 환경을 제공하기 때문에 다른 애플리케이션 또는 시스템 설정과 충돌 없이 실행됩니다.
  2. 이식성:
    • Docker 컨테이너는 어디서나 동일하게 작동합니다. 개발자의 랩톱에서 작동하는 컨테이너는 클라우드나 서버 환경에서도 똑같이 작동합니다.
    • 이는 "한 번 빌드하면, 어디서든 실행된다(Write Once, Run Anywhere)"는 이점을 제공합니다.
  3. 경량화 및 빠른 시작:
    • Docker 컨테이너는 가상 머신보다 훨씬 가볍고 빠르게 시작됩니다. 이는 Docker가 호스트 OS의 커널을 공유하고, 전체 운영 체제를 가상화하지 않기 때문입니다.
  4. Docker 이미지:
    • Docker 컨테이너는 이미지에서 생성됩니다. 이 이미지는 애플리케이션의 실행에 필요한 모든 것을 포함하는 템플릿 역할을 합니다.
    • 이미지는 레이어로 구성되어 있으며, 이 레이어들은 읽기 전용입니다. 컨테이너가 시작되면, 이미지 위에 쓰기 가능한 레이어가 추가됩니다.
  5. Docker Hub 및 레지스트리:
    • Docker Hub는 공개적으로 사용할 수 있는 Docker 이미지들을 저장하는 중앙집중식 서비스입니다.
    • 사용자는 자신의 이미지를 Docker Hub에 업로드하거나 다른 사람이 만든 이미지를 다운로드할 수 있습니다.
  6. 개발 및 배포 단순화:
    • Docker는 개발부터 테스트, 그리고 프로덕션에 이르기까지 소프트웨어 배포의 복잡성을 줄여줍니다.

Docker의 이러한 특징들은 개발자가 애플리케이션을 보다 쉽고 빠르게 개발하고 배포할 수 있게 해줍니다. 또한, 다양한 환경에서의 일관된 실행을 보장함으로써 소프트웨어의 이식성 문제를 해결합니다.

 

Window 환경에서 Docker 설치

1. Docker 설치 전 요구사항 확인

 

Docker를 설치하기에 앞서 사용중인 Windows가 어떤 버전이고 에디션인지 확인할 필요가 있습니다. 윈도우 검색 창에서 PC 정보를 검색합니다.

 

위의 이미지를 보시면 Windows 11 Pro를 사용하고 있는것을 확인할 수 있습니다.

여기서 Windows Pro, Enterprise, 또는 Education 버전이 필요한데, Home 버전에서는 Docker Desktop을 사용할 수 없습니다. 그 이유는, Docker Desktop은 기본적으로 Hyper-V 기능을 사용하기 때문에 Hyper-V 기능을 지원하지 않는 Windows Home Edition은 사용할 수 없습니다. 

 

하지만 Home 버전에서도 WSL2를 사용하여 Docker Desktop을 사용할 수 있습니다.

WSL은 Windows Subsystem for Linux 2의 줄임말로 윈도우에서 리눅스를 사용할 수 있게 해줍니다. Home 에디션이 Docker를 사용하려면 WSL2가 필수입니다. 

 

정리하자면 다음과 같습니다.

  • Windows 10/11 Professional / Education / Enterprise 에디션
    • WSL2 기반 Docker Engine 사용 가능
    • Hyper-V 기반 Docker Engine 사용 가능
  • Windows 10/11 Home 에디션
    • WSL2 기반 Docker Engine 사용 가능

 

2. WSL2 설치 및 활성화

 

- Docker는 리눅스를 기반으로 동작하기 때문에 윈도우 환경에서 리눅스를 사용할 수 있도록 도와주는 WSL2를 활성화 해야합니다.

- WSL(Windows Subsystem for Linux)는 VM과 같은 도구 없이 윈도우 환경에서 Linux를 사용할 수 있도록 도와줍니다.

- PowerShell을 Bash처럼 사용하고, Linux 명령어(sed, awk, vim, apt 등)를 사용할 수 있을 뿐만 아니라 Linux 커널도 사용이 가능합니다.

 

2-1. 관리자 권한으로 Windows PowerShell 실행 후 명령어 입력

# Windows SubSystem Linux를 활성화시키는 명령어
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# VirtualMachinePlatform 기능을 활성화시키는 명령어 : WSL2 버전에 필요한 명령어
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

 

 

2-2. 컴퓨터 재부팅 한 다음 wsl 명령어 실행한 뒤 다음과 같이 출력되는지 확인

 

2-3. Microsoft Store에서 Ubuntu 설치하기

 

2-3. WSL2 리눅스 커널 업데이트 

위의 링크를 다운로드 후 설치 진행.

 

2-4. Ubuntu 실행하여 아이디 패스워드 설정.

 

2-5. Windows PowerShell에서 Ubuntu가 설치 되었는지 확인.

 

wsl -l -v를 입력 후 위와 동일하게 나오는지 확인.

 

3. Docker Desktop for Windows 설치

 

하단의 페이지로 이동해서  Docker Desktop for Windows를 다운로드 받습니다. 

https://docs.docker.com/desktop/install/windows-install/

 

Install Docker Desktop on Windows

Get started with Docker for Windows. This guide covers system requirements, where to download, and instructions on how to install and update.

docs.docker.com

 

3-1. Docker install 파일 실행 

 

안내에 따라 설치를 진행합니다. Configuration에서 둘 다 체크하시고 설치를 진행합니다.

첫 번째 옵션은 WSL 관련 이고,

두 번째 옵션은 바탕화면에 아이콘 추가할지 여부입니다.

 

아래처럼 설치가 완료됐으면 close and logout을 클릭하시면 재부팅이 됩니다.

 

3-2. Docker Desktop 앱 실행

 

시스템에 WSL2가 활성화되어있다면 Docker는 WSL2를 백엔드로 Docker Engine을 실행합니다.

초기 셋업에는 몇 분 정도의 시간이 걸리고, Docker가 실행되면 Tutorial이 나타납니다.

 

 

이후 셋업이 완료되고, Docker Desktop을 실행하면 아래와 같은 창이 열리는데

오른쪽 상단에 톱니바퀴 모양 환경설정을 클릭합니다

 

General 설정에서 Use the WSL 2 based engine에 체크가 되어있는지 확인합니다. 미리 체크가 되어있을 텐데, 안됐다면 체크하고 오른쪽 아래의 Apply & Restart 버튼을 클릭합니다.

 

 

다음으로 Resource > WSL Integration 메뉴로 이동하여 Enable Integration with my default WSL distro에 체크되어있는지 확인하고 Apply & Restart 버튼을 클릭해주면 도커 엔진이 재실행됩니다.

추가로 저는 Ubuntu-20.04의 체크도 진행했습니다.

 

도커 재실행이 완료되셨다면 모든 설치가 끝난 것입니다.

 

4. Docker 설치 테스트

이제 Docker가 정상적으로 모두 설치가 됐는지 확인해보겠습니다.

 

우선 powershell에서 wsl -l -v를 입력하시면 docker 전용 머신이 추가된 것을 확인하실 수 있습니다. 

 

 

 

이제 리눅스에서 명렁어를 테스트 해보겠습니다. ubuntu를 실행하고 docker version 명령어를 입력하면 아래와 같이 docker 서버와 클라이언트 정보를 확인할 수 있습니다.

 

docker ps로 실행중인 컨테이너를 확인해본 결과, 아직 아무 컨테이너도 실행하지 않고 있는 것을 확인했습니다.

 

 

 

마치며

이상으로 Window 환경에서 docker를 설치하고 실행하는 방법에 대한 글을 마무리하고, 추후 docker를 사용해 제가 개발한 dash 페이지, 모델을 컨테이너에 올려보도록 하겠습니다.