검색하기귀찮아서만든블로그

[Docker] Hyper-V + Docker 환경 구성 본문

개발/환경

[Docker] Hyper-V + Docker 환경 구성

hellworld 2023. 3. 26. 14:57

Docker를 Windows 가상 컴퓨터에서 구동하기 위해 지난번 포스팅에서 Hyper-V VM 구성에 대해서 알아보았다. 이번 포스팅에서는 생성된 가상화 컴퓨터에 Hyper-V 가상화 중첩화 설정을 통하여 Docker Desktop 을 설치하고 MariaDB 컴테이너를 구동하는 것까지 공유해 보겠습니다.

 

Hyper-V 관리자에 생성된 가상 컴퓨터의 이름을 확인한다.

PC 에서 powershell 을 관리자 권한으로 실행하고 아래 명령어를 수행한다. (가상 컴퓨터를 종료한 상태에서 수행)

# Hyper-V 가상화 중첩화를 설정한다. (PC에서 수행)
PS> Set-VMProcessor -VMName "<가상 컴퓨터 이름>" -ExposeVirtualizationExtensions $true

PC에서 가상화 중첩화 설정이 완료되었으면 VM을 실행하여 windows 로 진입한다. Docker Desktop은 Docker Container 구동을 위해서 Windows는 Hyper-V 를 사용하고 Linux는 WSL2 엔진을 사용한다. VM 에서 Hyper-V 엔진을 사용해야 하기 때문에 PC와 동일하게 Hyper-V 활성화 명령어를 수행한다. (재부팅)

# Hyper-V 사용을 위한 설정 (PC에서 powershell 관리자 권한으로 실행)
PS> Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All
# 재부팅
PS> DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V

VM 에서 Hyper-V 활성화 명령어 수행 및 Hyper-V 활성 상태 확인

 

VM에 Hyper-V 가 활성화 되었으면 Docker Desktop 을 설치한다.
Docker Desktop for Windows 설치 파일 다운로드 URL : https://docs.docker.com/desktop/install/windows-install

 

Install Docker Desktop on Windows

 

docs.docker.com

설치가 완료되면 VM을 재부팅한다.

Docker Desktop 설치 (1) - Linux 도 사용할 계획이라서 WSL2 도 사용으로 체크

 

설치 후 Docker Desktop 을 구동하면 wsl 업데이트 요청이 팝업된다. powershell을 관리자 권한으로 실행하고 아래 명령어를 수행하고 Docker Desktop 을 재실행한다.

PS> wsl --update
업데이트 확인 중...
업데이트 다운로드 중...
업데이트 설치 중...
이 변경 사항은 다음 WSL 전체 다시 시작에 적용됩니다. 강제로 다시 시작하려면 'wsl --shutdown'을 실행하세요.
커널 버전: 5.10.102.1

PS> wsl --shutdown

Docker Desktop 설치(2) - Docker Desktop 실행 후 wsl 업데이트 경고

 

도커가 구동되면서 WLS2 엔진을 구동하고 Linux 모드로 실행된다. 본 포스팅에서는 Windows 환경에 Container 를 사용할 예정이기 때문에 도커 메뉴에서 Switch to Windows Containers... 를 선택하여 윈도우 환경으로 전환한다. (Linux 엔진을 백그라운드에서 돌고 있기 때문에 Linux 환경에서 구동중인 Container 는 유지된다. 동시 사용 가능)

Docker Desktop 구동 및 Windows 환경으로 전환하기

컨터에너에 windows Hyper-V 엔진이 정상적으로 구동되면 powershell 을 관리자 권한으로 실행하고 mariadb를 docker container 로 구동한다.

docker run -p 3306:3306 --volume="C:\Docker:C:\host" --volume "C:\Docker\mariadb:c:\mariadbdata" --name maria_container -eMARIADB_ROOT_PASSWORD=hellworld massimilianomancini/windocker-mariadb

mariadb Docker container 구동된 모습

이상 Windows 10 Hyper-V VM 환경에서 Docker Desktop 을 구동하고 MariaDB Container 까지 성공적으로 실행된 것을 확인할 수 있었다. 앞서 말씀드린바와 같이 Linux 환경 Container 들도 모두 사용이 가능하기 때문에 개발 환경으로 사용하기 좋을 것으로 생각된다.

다음 포스팅에서는 Hyper-V 에 Bridge 네트워크 환경을 구성하고 외부에서 MariaDB Docker Container 까지 접근하는 것을 공유하도록 하겠습니다.