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

[Docker] Network 이해와 사용기 본문

개발/환경

[Docker] Network 이해와 사용기

hellworld 2023. 3. 26. 13:21

Docker는 리눅스와 윈도우에서 모두 사용할 수 있는 컨테이너 기반의 가상화 플랫폼이다. 컨테이너는 애플리케이션과 그에 필요한 의존성들을 하나의 패키지로 묶어서 배포하고 실행할 수 있게 해준다. 컨테이너는 가볍고 빠르며 격리된 환경에서 동작하기 때문에 개발과 운영에 많은 장점을 제공한다.

 

이번 포스팅에서는 Docker Desktop 을 가상 환경에서 구동하기 위해 Windows 에서 제공하는 Hyper-V VM을 구성하는 방법에 대해서 알아본다. PC에 Docker Desktop을 구성하여 사용할 때 간헐적으로 Network IPv4 가 미사용으로 변경되는 문제가 있어서 가상 환경에 Docker Desktop 을 구성하려고 시도했었다. 지금까지 주로 Oracle Virtual-Box 가 무료라서 주로 사용해 왔는데 Docker Windows 환경을 Oracle Virtual-Box 에서 구성하기에는 Hyper-V 중첩된 가상화 설정을 할 수 없는 문제에 봉착했다. 중첩된 가상화 설정을 위해서 불가피하게 Hyper-V 를 사용한 VM을 구성해 보기로 했고 성공적으로 사용이 가능했기에 아래 포스팅을 작성하게 되었다. (Docker Tools 패키지에는 VirtualBox 를 포함하고 있는데 VirtualBox 충돌 문제로 실패)

 

[Hyper-V 가상 컴퓨터 구성 방법]

 

1. 설정에 앞서 BIOS 설정에서 Intel Virtualization Technology, VT-d (AMD SVM 모드) 설정 활성화가 선행되어야 한다. (Hyper-V 미지원 장비는 불가)

 

2. 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

 

3. 재부팅 후에 'Hyper-V 관리자' 를  실행해서 가상 컴퓨터를 생성한다.

4. 가상 컴퓨터 이름을 지정하고 가상 컴퓨터를 저장할 경로를 지정한다.

VM 생성 설정 (1) - 가상 컴퓨터 이름 및 생성 위치 지정

5. 본 포스팅에서는 가상 컴퓨터를 2세대로 생성하고 메모리는 Docker Desktop 을 구성하기 위해 6G 정도를 설정했다. 메모리 여유가 있다면 더 설정하기를 권장한다.

VM 생성 설정 (2) - 가상 컴퓨터 세대 및 메모리 크기 지정

6. 가상 컴퓨터에서 사용할 하드 디스크를 생성한다. 디스크 크기는 Windows 10 x64환경에 Docker Desktop를 설치하고 mariadb 컨테이너를 생성하기 위해 50기가 정도를 설정하였다. 네트워크는 Hyper-V 에서 기본 제공하는 Default Switch 를 선택하였다. 기본 NAT 구성이고, 브릿지 구성을 위한 포스팅은 추후에 작성하도록 하겠다.

VM 생성 설정 (3) - 네트워크 기정 및 하드디스크 크기

7. 가상 컴퓨터에 설치할 OS 이미지 (windows 10 iso)를 지정하고 설정을 완료하면 가상컴퓨터가 생성된다.

VM 생성 설정 (4) -  OS 설치용 이미지를 지정

8. 생성이 완료되면 생성된 가상 컴퓨터에 연결한다. 연결이 되면 시작 버튼을 눌러서 OS 설치를 시작한다.

VM 생성 설정 및 생성 완료 및 연결

9. OS 설치는 기존 windows 설치와 동일하게 진행하면 된다.

이상 Docker Desktop 을 구동하기 위한 VM 구성을 Hyper-V를 사용하여 생성해 보았습니다. VM에 Docker를 운용하기 위해서 Hyper-V 가상화 중첩화 설정이 필요하고, Hyper-V 에서 구성이 가능한 사실을 알기까지 많은 실패가 있었습니다. 공유 차원에서 포스팅을 작성하게 되었으니 부족한 부분이 있더라도 감안바랍니다.

 

다음 장에서는 Hyper-V에 Docker Desktop 을 구성하는 포스팅을 작성해 볼 예정입니다.