Skip to content

aiminickwong/docker-issue-tracking

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 

Repository files navigation

docker-issue-tracking

Keeping track of status different components issues which we have seen with Linux + Windows hybrid Docker Swarm.

NOTE! I recommended to use Semi-Annual Channel version of Windows Server as it contains many improvements which are missing from Windows Server 2016.

I also recommended you to avoid Hyper-V isolation mode as it have very poor performance.

Usage:

Install GitHub Issue Link Status to your favorite browser so you can see status of these items directly on here:

Current configuration

Components:

Role OS OS version Docker version
Swarm manager Rancher OS v1.4.0 18.03.1-ce
Linux worker Rancher OS v1.4.0 18.03.1-ce
Windows worker Windows Server version 1803 18.03.1-ee-1

Example of fully working stack

This docker stack is tested to be fully working on Linux + Windows hybrid swarm and connections between all the containers are working just fine.

NOTE! All the services are using endpoint_mode=dnsrr that is trick to make connections working.

version: '3.3'

networks:
  test:
    driver: overlay

services:
  win1:
    image: microsoft/nanoserver:1803_KB4103721
    networks:
      - test
    deploy:
      endpoint_mode: dnsrr
      placement:
        constraints:
          - node.platform.os==windows
    command: ping -t 127.0.0.1
  win2:
    image: microsoft/nanoserver:1803_KB4103721
    networks:
      - test
    deploy:
      endpoint_mode: dnsrr
      placement:
        constraints:
          - node.platform.os==windows
    command: ping -t 127.0.0.1
  linux1:
    image: alpine:3.7
    networks:
      - test
    deploy:
      endpoint_mode: dnsrr
      placement:
        constraints:
          - node.platform.os==linux
    command: sh -c "ping 127.0.0.1"
  linux2:
    image: alpine:3.7
    networks:
      - test
    deploy:
      endpoint_mode: dnsrr
      placement:
        constraints:
          - node.platform.os==linux
    command: sh -c "ping 127.0.0.1"

Known issues and workarounds

OS Description Upstream item Workaround / solution
Linux docker service logs command stopped working moby/moby#35011 Restart all Swarm managers one by one
Both Node reboot makes multiple copies of service running on same node moby/moby#26259 Create service(s) on --mode global and use constraints to control which nodes containers will run
Windows Cannot change default NAT IP on Windows node docker/for-win#726 Update dockerd.exe start command to contain --fixed-cidr before start it first time on new server
Windows hcsshim::PrepareLayer timeouts on docker build phase moby/moby#27588 Use Core version of Windows Server
Windows Cannot start container because directory mount fails moby/moby#30556 Make sure that folder is empty on docker image / Use Windows Server build 1803 or above
Windows Networks stops working / containers fails to start Multiple Clear networks with this script and join node back to Swarm
Windows Connections from Windows node to service(s) on Linux or another Windows node fails docker/for-win#1476 Use DNS routing mode ( --endpoint-mode dnsrr ) for all services (both Linux and Windows) where you want connect from Windows
Windows Cannot connect to docker from inside of container (needed example with microsoft/vsts-agent) moby/moby#34795 -
Windows Date / time is wrong inside of container with Hyper-V isolation mode moby/moby#37283 Use process isolation mode
Windows Printer spooler crashes inside of container stackoverflow https://stackoverflow.com/a/50748146/9529640
Windows Cannot install all features to container because of they are removed from image - Copy needed packages from host machine C:\Windows\WinSxs and install using dism
Windows net use command fails inside of container - Install File-Services feature to host and to container

Fixed issues

OS Description Upstream item
Both Cannot stop containers moby/moby#35933
Windows Container cannot be started because old endpoint is stuck moby/moby#36603
Both {{.Node.Hostname}} cannot be used on environment variables docker/swarmkit#

About

Keeping track of status different components issues which we have seen with Linux + Windows hybrid Docker Swarm.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors