Insights

Sitecore Running in a Windows Server Container - Part 2

Sitecore Running in a Windows Server Container - Part 2

Sitecore Running in a Windows Server Container - Part 2 Sitecore Running in a Windows Server Container - Part 2
Senior Sitecore Developer
Valtech DK
Per Manniche Bering

December 18, 2015

Here you can find some tips and tricks I picked up while playing around with this awesome new Windows feature. You should also read Part 1 before this makes any sense :)

Host VM tweaks

  • To manage the host from your workstation you can use Enter-PSSession -VMName "wscdev", more about the new PowerShell Direct feature on MSDN.

  • Remove Windows Defender, totally cripples build and running images:

    Uninstall-WindowsFeature -Name Windows-Defender-Features -Restart

  • To set the keyboard language to something else than en-US:

    Set-WinUserLanguageList -LanguageList da-DK

  • Place the VHD on SSD for maximum disk performance, most image/container operations are very disk I/O hungry.

  • Soon you will run out of disks space in the host VM (is 20 GB). Here is how to make a larger host with more space:

  1. Copy ServerDatacenterCore_en-us_TP4_Container.vhd to ServerDatacenterCore_en-us_TP4_Container_Extended.vhd.
  2. Use the "Edit disk" feature in Hyper-V to expand it.
  3. Double-click the new expanded VHD to mount it.
  4. Use "Disk Management" to re-size the OS volume.
  5. Use "Explorer" to eject the mounted VHD.
  6. Use VhdPath parameter of New-ContainerHost.ps1 to reference the expanded VHD.

Connecting with the host VM from your workstation

  1. On the host add " -H 0.0.0.0:2375" right after the first occurrence of "-b "Virtual Switch" and before the "goto" in the file "c:\ProgramData\docker\runDockerDaemon.cmd"

  2. Run net stop docker and net start docker to restart the Docker daemon

  3. Open the new port with: New-NetFirewallRule -Name "TCP2375" -DisplayName "TCP2375" -Protocol tcp -LocalPort 2375 -Action Allow -Enabled True

  4. Now set the DOCKER_HOST environment variable to your host VM IP: $env:DOCKER_HOST = "tcp://10.20.34.227:2375"

You can now use docker.exe from you workstation!

Cleaning up

Delete all stopped containers:

docker rm $(docker ps -a -q)

Delete all tagged images tagged with "none":

docker rmi $(docker images -q -f dangling=true)

Other stuff

PART 1 CAN BE READ HERE 

Original article posted on Invoke Command Blog: Running in a Windows Server Container 

Meet The Challenges Of Today's Digital Economy

Ready to take that first step and rise to your digital potential? Contact Valtech today.
Talk to us
Meet The Challenges Of Today's Digital Economy