InvokeV Container provides container virtual machine clone management and enables faster and smaller footprint VMs on your familiar Hyper-V environment. InvokeV Container enables a linked clone feature on similar to your Hyper-V environment.
- Enables following virtual machine recycle process with ease. create, dispose, imaging
- Enables minimize container image using vhdx differencial file technology
- All OS supported by HyperV can be available (Windows,NanoServer,Linux...etc)
- If you use NanoServer image for base, deployment enables faster and smaller footprint virtual machine.
- It can be used in the same specifications as the virtual machine, such as network and security on Hyper-V.
- Existing virtual machines with Hyper-v on mixed use is possible.
- Create a container image yourself.
- Enables both PowerShell and GUI tool management
- Enables GUI tool management via Remote desktop
- Enables create new image by combining parent's container image and child container image
- This container isn't concerned with Windows container and Docer container.
Windows Server 2016 Hyper-V
Windows Server 2012 R2 Hyper-V
Windows 10 Hyper-V
1.Download the following files on same folder InvokeVContainer.psm1 , Setup.ps1 If you recieve a security alert, unlock these scripts.
PS C:\Users\Administrator\Downloads> Unblock-File .\Setup.ps1
2.Execute Setup.ps1 with repository path.
PS C:\Users\Administrator\Downloads> .\Setup.ps1 "D:\"
Under the targeted path "InvokeVContainer" folder (example D:\InvokeVContainer) was created. InvoleVContainer.psm1 file were copyed to the following path. "C:\Users(logined user name)\Documents\WindowsPowerShell\Modules\InvokeVContainer\InvokeVContainer.psm1"
Note:
- If you have already installed Windows's container Docker-PowerShell, you need to uninstall Docker-PowerShell with the command "Uninstall-Module Docker" or "Remove-Module Docker".
- If you change InvokeVContainer.psm1, You should reload the module with command "Remove-Module *"
- When you Uninstall, just delete repositry folder and InvokeVContainer.psm1 file.
> Get-Command -Module InvokeVContainer
CommandType Name Version Source
----------- ---- ------- ------
Function Correct-ContainerImage 0.0 InvokeVContainer
Function Export-ContainerImage 0.0 InvokeVContainer
Function Get-Container 0.0 InvokeVContainer
Function Get-ContainerImage 0.0 InvokeVContainer
Function Get-ContainerIPAddress 0.0 InvokeVContainer
Function Get-InvokeVContanerRoot 0.0 InvokeVContainer
Function Get-TreeView 0.0 InvokeVContainer
Function Import-ContainerImage 0.0 InvokeVContainer
Function Merge-ContainerImage 0.0 InvokeVContainer
Function New-Container 0.0 InvokeVContainer
Function New-ContainerImage 0.0 InvokeVContainer
Function Remove-Container 0.0 InvokeVContainer
Function Remove-ContainerImage 0.0 InvokeVContainer
Function Run-Container 0.0 InvokeVContainer
Function Set-ContainerIPConfig 0.0 InvokeVContainer
Function Set-TreeView 0.0 InvokeVContainer
Function Start-Container 0.0 InvokeVContainer
Function Stop-Container 0.0 InvokeVContainer
Function Wait-ContainerBoot 0.0 InvokeVContainer
Base Container Virtual Machine was OS installed vhdx files. vhdx file were import as a Virtual Machine Image.
> Import-ContainerImage -FilePath "D:\Hyper-V\Win2016\Win2016.vhdx"
GUID assigned to vhdx file were copied to D:\InvokeVContainer\Imageg (This process takes time depends on its vhdx file size)
> Get-ContainerImage
Name : IMG_01
Path : D:\InvokeVContainer\Images\IMG_01_2110bc02-d624-4c78-879b-dd6f5601fabc_1d0ac088-4547-4a49-bfa5-7f542e08a386.vhdx
Size(MB) : 1947
Created : 2017/01/16 21:49:01
ParentPath : D:\InvokeVContainer\Images\Win2016__2110bc02-d624-4c78-879b-dd6f5601fabc.vhdx
Name : MyNewIMG_01
Path : D:\InvokeVContainer\Images\MyNewIMG_01__ac2e69c7-c406-42a3-a0a9-b7d6cbc8f116.vhdx
Size(MB) : 18308
Created : 2016/10/13 12:09:56
ParentPath :
Name : Win2016
Path : D:\InvokeVContainer\Images\Win2016__2110bc02-d624-4c78-879b-dd6f5601fabc.vhdx
Size(MB) : 18308
Created : 2016/10/13 12:09:56
ParentPath :
> New-Container -ContainerName "CON_01" -ImageName "Win2016" -Memory 2048MB -Processer 1 -SwitchName "NAT"
-SwithName: Virtual switch name created with Hyper-V manager. When you use NAT virtual switch created with New-NetNat command, IP address assignment is needed.
> Run-Container -ContainerName "CON_01" -ImageName "Win2016" -Memory 2048MB -Processer 1 -SwitchName "NAT" -IPAddress 172.16.0.1 -Subnet 255.255.255.240 -Gateway 172.16.0.254 -DNS 8.8.8.8
If you use Run-Container command, you can easily execute the following steps (create container virtual image, run container virtual image, configuration IP address).
Note: IP address assignment is only available with Container Virtual Machine Image supported by OS integrated services.
> Get-Container
Name State Path ParentPath
---- ----- ---- ----------
CON_01 Running D:\InvokeVContainer\Containers\CON_01\CON_01.vhdx D:\InvokeVContainer\Images\Win2016__2110bc02-d624-4c78-879b-dd6f5601fabc.vhdx
> Start-Container "CON_01"
> Stop-Container "CON_01"
> vmconnect (hostname) "CON_01"
Connect container Virtual Machine via vmconnect.exe similar way as Hyper-V manager.
> New-ContainerImage -ContainerName "CON_01" -ImageName "IMG_01"
Create New Container Virtual Machine from created first Container Virtual Machine Image. This process doesn't depend on if the Container Virtual Machine is running or not running. Created Container Virtual Image is child file (differential file) of parent virtual machine image file.
> Merge-ContainerImage -ImageName "IMG_01" -NewImageName "MyNewIMG_01"
You can merge a container virtual machine image and create a new container virtual machine image. Retaining the container virtual machine file and both the pre-merged parent and child files.
> Remove-ContainerImage "IMG_01"
InvokeV Container Manager enables visualized GUI contaner management with PowerShell Command.
Because Container has complicated parent-child file relationship, this tool is usuful to manage its relationship.
Basic operation starts with a right mouse click.
Note: You need Administrative privilege

InvokeV Container Overview (YouTube)
Note This is translated repo of Invoke V Container Copylight (C) 2016 Katsuichi Higuchi a.k.a Invoke V