Coder Social home page Coder Social logo

invokev-container's Introduction

InvokeV Container

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.

Feature

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

Supported Environment

Windows Server 2016 Hyper-V
Windows Server 2012 R2 Hyper-V
Windows 10 Hyper-V

Install

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.

Confirmation Commands

> 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 Image

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)

Confirmation Container Virtual Machine Image

> 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 : 

Create first container

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

Confirm Container Virtual Machine:

> 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 Virtual Machine:

> Start-Container "CON_01" 

Stop Container Virtual Machine:

> Stop-Container "CON_01" 

Connect Container Virtual Machine:

> vmconnect (hostname) "CON_01" 

Connect container Virtual Machine via vmconnect.exe similar way as Hyper-V manager.

Create New Container Virtual Machine Image:

> 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 Container Virtual Machine Image:

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

Delete Container Virtual MachineImage:

> Remove-ContainerImage "IMG_01"

InvokeV Container Manager:

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 Invoke VContainer Manager

InvokeV Container Overview:

InvokeV Container Overview (YouTube)

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

invokev-container's People

Contributors

invokev avatar miyamam avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.