Windows 10 도커 설치 과정 (2022 ver)
Page content
개요
- 주요 참고자료는 다음과 같다.
Step 1. WSL2 설치 과정
- Windows PowerShell 관리자로 실행 후 다음 명령어 입력
$ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
$ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 위 명령어 실행 후, 재부팅 필수
- x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지를 다운로드 받아 안내에 따라 설치합니다.
- Windows Powershell 열고 아래 코드 실행
$ wsl --set-default-version 2
WSL 2와의 주요 차이점에 대한 자세한 내용은 https://aka.ms/wsl2를 참조하세요
Step 2l Docker Desktop 설치
- 다음 페이지로 이동해서 Docker Desktop for Windows를 다운로드 받습니다.
-
다운로드 받은
Docker Desktop Installer.exe
를 실행하면 사용자 계정 컨트롤이 나타남. 설치를 진행하려면 ’예’를 클릭함. -
설치 중간에 Configuration이 나타납니다. 둘 다 체크하고 설치를 진행함. (첫 번째 옵션은 WSL 관련, 2번째 옵션은 바탕화면에 아이콘 추가할지 여부).
- Docker Desktop 설치 진행.
- 설치가 끝나면 Installation succeeded 메시지가 나타남. 시스템 상태에 따라서 재시작이나 로그아웃을 해야하는 경우도 있다. Close 버튼을 클릭해 인스톨러를 종료함.
- 재 접속 시, 아래 화면에서 약관 동의하면 끝.
- 시스템에 WSL2가 활성화되어있다면 Docker는 기본적으로 WSL2를 백엔드로 Docker Engine을 실행함. 초기 셋업에는 몇 분 정도의 시간이 걸림. 성공적으로 Docker가 실행되면 Tutorial이 나타남.
- 로그인 하면, 아래와 같은 화면이 나옴. Proceed to Docker Desktop 실행하면 종료
- 도커 컨테이너 실행 시작 후, 오른쪽 상단 설정창을 클릭한다.
- 다음으로 WSL2 설정이 잘되어있는지 확인하고 WSL 통합 설정을 진행함. Docker 아이콘에서 오른쪽 버튼을 눌러 Settings를 선택함. 먼저 General 설정에서 ’Use the WSL 2 based engine’에 체크가 되어있는지 확인함. 미리 체크가 되어있을 텐데, 혹시 되어있지 않다면 체크하고 오른쪽 아래의 Apply & Restart 버튼을 클릭함.
- 다음으로 왼쪽 사이드바에서 Resource > WSL Integration 메뉴로 이동함. ’Enable Integration with my default WSL distro’에 체크되어있는지 확인함. 체크가 되어있지 않을 텐데 체크하고 오른쪽 아래의 Apply & Restart 버튼을 클릭해주면 도커 엔진이 재실행됨.
- 도커 설치는 완료 됨
Step 3. Docker 설치 확인 및 간단한 nginx 서버 예제 실행
- PowerShell 탭을 하나 열고
wsl
명령어로 Docker 전용 머신이 실행중인 것을 확인할 수 있다.
PS C:\WINDOWS\system32> wsl -l -v
NAME STATE VERSION
* docker-desktop Running 2
docker-desktop-data Running 2
- wsl로 docker-desktop 리눅스에 명령어를 실행해볼 수 있습니다. docker-desktop은 BusyBox 기반의 경량 리눅스인 것을 확인해볼 수 있습니다.
PS C:\WINDOWS\system32> wsl -d docker-desktop busybox
BusyBox v1.29.3 (2019-01-24 07:45:07 UTC) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.
Licensed under GPLv2. See source distribution for detailed
copyright notices.
.
.
.
docker version
명령으로 Docker 서버와 클라이언트 정보를 확인해봅니다.
PS C:\WINDOWS\system32> docker version
Client:
Cloud integration: v1.0.22
Version: 20.10.13
API version: 1.41
Go version: go1.16.15
Git commit: a224086
Built: Thu Mar 10 14:13:04 2022
OS/Arch: windows/amd64
Context: default
Experimental: true
Server: Docker Desktop 4.6.1 (76265)
Engine:
Version: 20.10.13
API version: 1.41 (minimum version 1.12)
Go version: go1.16.15
Git commit: 906f57f
Built: Thu Mar 10 14:06:05 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.5.10
GitCommit: 2a1d4dbdb2a1030dc5b01e96fb110a9d9f150ecc
runc:
Version: 1.0.3
GitCommit: v1.0.3-0-gf46b6ba
docker-init:
Version: 0.19.0
GitCommit: de40ad0
- docker로 실행중인 컨테이너 확인
PS C:\WINDOWS\system32> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 이번에는 ngix 서버 활성화를 해본다.
$ docker run -p 4567:80 -d nginx:latest
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
c229119241af: Pull complete 2215908dc0a2: Pull complete 08c3cb2073f1: Pull complete 18f38162c0ce: Pull complete 10e2168f148a: Pull complete c4ffe9532b5f: Pull complete Digest: sha256:2275af0f20d71b293916f1958f8497f987b8d8fd8113df54635f2a5915002bf1
Status: Downloaded newer image for nginx:latest
cd56760cf433cc797a6c43c544fe52493daccc06b4c30842a98ef6ec3665bf10
- 다시 docker로 실행중인 컨테이너 확인을 한다.
PS C:\WINDOWS\system32> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd56760cf433 nginx:latest "/docker-entrypoint.…" 36 seconds ago Up 31 seconds 0.0.0.0:4567->80/tcp tender_benz
- 주소창에 http://127.0.0.1:4567/ 실행하면 아래와 같은 화면이 나오면 정상이다.
- 이번에는 실행중인 컨테이너를 삭제한다.
PS C:\WINDOWS\system32> docker rm -f cd56760cf433
cd56760cf433
PS C:\WINDOWS\system32> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Step 4. 그외 추가 설치
- WSL2에서는 다양한 리눅스 배포판을 사용할 수 있습니다. 여기서는 가장 많이 사용되는 리눅스 배포판인 Ubuntu를 설치해보겠습니다(Ubuntu는 무료로 사용할 수 있지만, 리눅스 배포판에 따라서 유료인 경우도 있습니다). 맨 앞의 패키지를 선택하고 상세 페이지에서 설치를 진행합니다.
- Windows Ternminal 설치
- UNIX 계정 및 Password를 설정한다.
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: human
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Tue Apr 5 17:16:59 KST 2022
System load: 0.71 Processes: 8
Usage of /: 0.5% of 250.98GB Users logged in: 0
Memory usage: 5% IPv4 address for eth0: 172.17.187.7
Swap usage: 0%
1 update can be applied immediately.
To see these additional updates run: apt list --upgradable
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
This message is shown once a day. To disable it please create the
/home/human/.hushlogin file.
- ID : human / PW: 1234
- 다시 터미널을 실행해주세요(이 때는 관리자 모드를 사용하지 않아도 됩니다). 이제 WSL을 관리하기 위한
wsl
명령어를 사용할 수 있습니다.wsl -l -v
로 현재 설치된 리눅스를 확인해봅니다. - WSL 제대로 실행되었는지 확인하는 코드
PS C:\WINDOWS\system32> wsl -l -v
NAME STATE VERSION
* docker-desktop Running 2
Ubuntu Running 2
docker-desktop-data Running 2
앞의 *
는 디폴트 머신을 의미합니다. 여기서 버전 컬럼은 WSL의 버전을 의미합니다. 2가 출력된다면 그대로 사용하면 됩니다. 만약 버전이 1이라고 나온다면 다음 명령을 실행해줍니다.
$ wsl --set-version Ubuntu 2
변환이 진행 중입니다. 몇 분 정도 걸릴 수 있습니다...
WSL 2와의 주요 차이점에 대한 자세한 내용은 https://aka.ms/wsl2를 참조하세요
변환이 완료되었습니다.
실행 후 ’변환이 완료되었습니다’라는 출력 결과를 꼭 확인해주세요. 다시 wsl -l -v
명령어로 확인해봅니다. 변환이 잘 되었는지 확인해보겠습니다.
WSL 에러 대처법
- 자료 1 : https://docs.microsoft.com/en-us/windows/wsl/install-manual#step-3—enable-virtual-machine-feature
- Error when trying to upgrade:
Invalid command line option: wsl --set-version Ubuntu 2
- Ensure that you have the Windows Subsystem for Linux enabled, and that you’re using Windows Build version 18362 or higher. To enable WSL run this command in a PowerShell prompt with admin privileges:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
.
- Ensure that you have the Windows Subsystem for Linux enabled, and that you’re using Windows Build version 18362 or higher. To enable WSL run this command in a PowerShell prompt with admin privileges:
- 가상화 설치 필요 시
$ systeminfo
.
.
.
Hyper-V 요구 사항: VM 모니터 모드 확장: 예
펌웨어에 가상화 사용: 아니요
두 번째 수준 주소 변환: 예
데이터 실행 방지 사용 가능: 예