VHD to DockerFile

최대 1 분 소요

VHD는 어떻게 만드나?

전에 포스트 했던 내용을 참고해 주길바란다. 3가지 방법으로 만들어 낼수 있다.

방법 1 : Windows server 2016 vhd 만들기 1편

방법 2: Windows server 2016 vhd 만들기(virtual box를 이용) 2편

방법 3: Windows server 2016 vhd 만들기(azure를 이용) 3편

ImageToDocker

ImageToDocker를 이용하면 VHD로부터 DockerFile을 추출해낼 수 있다.

PowerShell을 하나 관리자 권한으로 열어주고 Image2Docker 모듈을 설치해준다.

Install-Module Image2Docker -Verbose

image-20191114222931791

image-20191114223008678

이제 Image2Docker를 Import 한다.

Import-Module Image2Docker

image-20191114224113655

만약 다음처럼 에러가 난다면

image-20191114223807542

Set-ExecutionPolicy -ExcutionPolicy Bypass

실행규칙을 Bypass로 변경해주자

image-20191114224020750

Image2Docker 에는 다음과 같은 CommandType이 있다.

Get-Command -Module Image2Docker

image-20191114224247609

사용법은 다음처럼 찾아보면 된다.

Get-Help ConvertTo-Dockerfile

image-20191114224447068

ConvertTo-Dockerfile 명령을 실행해보겠다.

그랬더니 Artifact 매개변수를 제공해야 한다고 한다.

ConvertTo-Dockerfile -ImagePath "D:\VHD\windows server 2016.vhd" -OutputPath "D:\dockerfile_from_VHD"

image-20191114224848054

Artifact 는 다음과 같은 것이 있음을 확인할 수 있다.

Get-WindowsArtifact

image-20191114224942564

다시 ConvertTo-Dockerfile Artifact 매개변수를 포함한 명령을 실행해보겠다.

ConvertTo-Dockerfile -ImagePath "D:\VHD\windows server 2016.vhd" -OutputPath "D:\dockerfile_from_VHD\AllWindowsFeatures" -Artifact AllWindowsFeatures

ConvertTo-Dockerfile -ImagePath "D:\VHD\windows server 2016.vhd" -OutputPath "D:\dockerfile_from_VHD\AddRemovePrograms" -Artifact AddRemovePrograms

ConvertTo-Dockerfile -ImagePath "D:\VHD\windows server 2016.vhd" -OutputPath "D:\dockerfile_from_VHD\IIS" -Artifact IIS

image-20191115222747049

Dockerfile이 생성되어 있음을 확인할 수 있다.

image-20191115222002941

image-20191115221934392

image-20191115222028638

맺음말

이제 우리는 VM을 그대로 Docker로 컨테이너화 할 준비가 되었다.

Dockerfile을 이용한 컨테이너화 작업은 다음편에서…

참고 URL

https://github.com/docker/communitytools-image2docker-win

https://www.powershellgallery.com/packages/Image2Docker/1.8.5

댓글남기기