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

[Hyper-V] VM (Windows) 환경 구성 본문

개발/환경

[Hyper-V] VM (Windows) 환경 구성

hellworld 2023. 3. 26. 15:40

이전 포스팅에서 Windows 10 을 Hyper-V 가상컴퓨터로 생성하고 Docker Desktop 을 설치하여 MariaDB 를 Container 환경으로 구성하는 것까지 확인하였다. 이번 포스팅에서는 VM 이 NAT 환경으로 구성되어 있는 것을 Bridge 환경으로 변경하고 외부 PC에서 MariaDB까지 접속이 가능한 것을 확인해 보겠다.
 
우선 지난 포스팅에서 구성한 Hyper-V VM 환경을 구성하기 위해 사용된 네트워크 정보는 아래와 같다.
(PC에서 확인한 Default Switch 의 IPv4 주소) Default Switch 는 Hyper-V 환경을 사용하면 자동으로 생성되는 네트워크이다.

PC 에서 확인한 Default Switch 정보 (VM NAT 구성)

아래는 VM 에 연결된 NIC 에 대한 정보이다. 기본 게이트웨이가 PC의 IPv4 값으로 설정된 것을 볼 수 있다.

VM 내부에서 확인한 NIC 정보

PC에서 Hyper-V 관리자에서 가상 스위치 관리자 메뉴를 오픈해서 가상 스위치를 추가한다. 가상 스위치를 생성하면 "네트워크 연결이 끊어질 수 있다" 는 경고가 팝업되는데 그대로 진행하면 된다. (운영 환경에서는 주의가 필요함)
생성 후 PC에서 ipconfig /all 을 실행하면 새로 생성한 NIC을 확인할 수 있다.

Hyper-V 관리자 - 가상 스위치 관리자

 
새로 생성한 가상 스위치를 Hyper-V  VM에 연결하기 위해서 VM 설정 메뉴를 오픈하고 네트워크 어댑터에 가상 스위치를 새로 생성한 NIC으로 변경하면 VM에 NIC이 적용된다.

Hyper-V VM에 Bridge 네트워크 스위치 설정

네트워크 설정이 끝났으면 도커 컨테이너에 powershell을 실행하여 MariaDB 외부 접속 계정을 추가한다.

[HOST PC]--------------------------------------------
PS HOST> docker Container ls
PS HOST> docker exec -it <container name> powershell

[VM]-------------------------------------------------
PS VM> cd c:\mariadb\bin
PS VM> ./mariadb.exe -troot

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.6.4-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create user '<계정>'@'%' IDENTIFIED BY '<비밀번호>';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* to '<계정>'@'%'

 

Docker Container에 powershell 접속 후 MariaDB&amp;nbsp;외부 접속 계정 추가

원격지 PC에서 DB 접속 Client 툴을 사용하여 Container 로 구동중인 MariaDB에 접속을 시도한다.

원격지 PC에서 MariaDB Container에 접속

이상 Hyper-V VM 에 Bridge 네트워크를 구성하고 내부에서 동작중인 MariaDB Container 에 외부에서 접근이 가능한 환경을 재연해보았다. 개발을 하다보면 개발 시간보다 설계나 환경 구축하는 시간이 더 많이 소요되는데 이렇게 한 번씩 정리를 하면 도움이 되는 것 같다.
지금까지 총 3개의 포스팅을 통해서 Hyper-V Windows VM 에 Docker Desktop 을 구성하고 MariaDB Container 구성까지 수행을 해보았는데, Docker 내부 네트워크 환경에 대한 내용은 거론된 내용이 없어서 기본 NAT (Linux 기준 Bridge) 네트워크로만 구성한 상태이다. 추후에는 Docker Network 구성중 Overlay, Transparent, L2Bridge 네트워크를 구성하는 방법을 습득해서 포스팅할 계획이다.