Docker Blog Plan

12 Mar 2017, Jonathan Leaver

nat error install service sometimes doesn’t commit

Docker container setup

Windows Containers-Quick Start

Docker environment

Installed on the server:

PS C:\> docker --version
Docker version 1.12.2-cs2-ws-beta, build 050b611

Adjust the service (using sc in cmd), to start the dockerd.exe as:

"C:\Program Files\docker\dockerd.exe" --run-service -H tcp:// -H npipe://

Installed on the client:

PS C:\> docker --version
Docker version 1.13.0-dev, build d0d0f98

PS C:\> docker-compose --version
docker-compose version 1.8.1, build 004ddae

Client environment DOCKER_HOST and PATH settings:

docker_host environment variable

docker path environment variable


Create an image for F# (based on Option 3)

Things I learned:

  • How to change the SHELL and how CMD works.
  • Connecting via docker run to inspect the state of the machine.
  • Start-Process -Wait for many installers (that run async)
    • otherwise they’re unpredictable ~ sometimes install ~ sometimes don’t
FROM microsoft/windowsservercore

# Configure Powershell as the Default Shell
SHELL ["powershell", "-NoProfile", "-Command", "$ErrorActionPreference = 'Stop';"]
# .NET 4.5
RUN Install-WindowsFeature Net-Framework-45-Core

# MSBuild Tools     
ADD \BuildTools_Full.exe
RUN Start-Process -Wait -FilePath '\BuildTools_Full.exe' -ArgumentList '/passive','/norestart'
# FSharp 4  
ADD \FSharp_Bundle.exe
RUN Start-Process -Wait -Filepath '\FSharp_Bundle.exe' -ArgumentList '/install','/quiet'
RUN SetX /M PATH "\"C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0;$env:PATH\""

# Microsoft (R) F# Interactive version 14.0.23020.0
CMD FsiAnyCpu.exe

docker build fsharp

docker run

docker run fsharp


docker compose

Fix for DNS

RUN set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name ServerPriorityTimeLimit -Value 0 -Type DWord

docker compose up

docker exec


Talk about servicepriority app.

docker compose down



Make sure you accept connections from non-local IPs:

CMD /EventStore/EventStore.ClusterNode.exe --db /Data --log /Logs --ext-ip --ext-http-prefixes 'http://+:2113/'