How To Port Windows Server IIS Sites To Docker Using Image2docker

In this blog post, I’ll show you how to port a Windows Server IIS applications or Sites to windows Containers using image2docker.

Image2docker

The tool Image2docker, Is a PowerShell Module that ports Windows Server IIS and ASP.NET applications from a .VHD, .VHDX or .WIN files to a Docker container Image.

The focus of the module Is to port IIS and ASP.NET applications to docker, however, the tool supports other roles as well.

Prerequisites

The only requirement for Image2Docker Is to have PowerShell 5.0 Installed on the machine you will port the applications, There Is no need to Install docker on the machine.

Install

To Install Image2Docker I’ll open PowerShell and run the cmdlet below:

Install-Module image2docker

To view all cmdlets In the module, I use:

Get-Command -Module Image2Docker

Once, Installed I can view all available applications I can port to Docker using the line below:

Get-WindowsArtifact

Port IIS Websites

Below, I’ll run a cmdlet that will port IIS sites to a Docker Image:

ConvertTo-Dockerfile -ImagePath .\VDC02.vhdx -Artifact IIS -OutputPath c:\vh\VDC02

Note: It’s recommended to use the -Artifact switch to tell the module what we want to port, Otherwise, the module will scan the entire VM for everything that can be ported.

dockerFile

Once done, I’ll see the files below In the Output folder, and you can see below that I have a DockerFile and a wwwroot folder for my IIS website

Now, all I need to do Is build my Docker Container Image using the line below:

Docker build -t vdc02 .

The process will take a few minutes depending on the size of the Image

When done, I’ll see the Image

Next, I’ll create a new Container and I’m done

To view that my IIS site Is running I’ll use docker exec to check If the site Is running

Docker exec 6f61eb8cdc2d powershell get-iissite

Conclusion

Image2Docker Is great tool that can port existing IIS and .NET application to Docker easily.

My recommendation Is to use the tool for simple and basic application before moving to more complex applications.

Leave a Reply

Your email address will not be published. Required fields are marked *