Docker til Windows - netværk: Container med flere netværksinterfaces

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at vedhæfte en container til to undernet uden succes.


Denne rapportinformation, der krydser subnetkommunikation, understøttes ikke i øjeblikket:
https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/container-networking[4]


Jeg har dog defineret to brugerdefinerede NAT-subnetværk inden for det store standard NAT-netværk.


Når du starter beholderen, ser det godt ud: Der er to virtuelle NIC inde i beholderen med passende IP-adresser.
Jeg kan dog kun pinge en af ​​grænsefladerne fra værten og containerne i de respektive undernet.


Er dette i øjeblikket understøttet, og skulle arbejde?

Det kan være en mulighed for at rute mellem to adskilte subnets, er det i øjeblikket muligt at lave Docker til Windows?


Jeg har forsøgt to metoder til netværksskabelse:


1. with docker-compose:

    version: '2.1'
    services:
       rabbitmq-c:
         image: ephortesys/rabbitmq:latest
         hostname: rabbitmq-c
         domainname: gecko.no
         mem\_limit: 1g
         networks:
           - internal
           - external
    networks:
      internal:
        driver: nat
          driver: default
        ipam:
          config:
          - subnet: 172.24.1.0/24
            gateway: 172.24.1.1
      external:
        driver: nat
        ipam:
          driver: default
          config:
          - subnet: 172.24.2.0/24
            gateway: 172.24.2.1


**


2. with 'docker network create', and use these in docker.compose.yml:

docker network create --driver=nat --subnet=172.24.1.0/24 --gateway=172.24.1.1 net1  
docker network create --driver=nat --subnet=172.24.2.0/24 --gateway=172.24.2.1 net2

networks:
   internal:
     external:
      name: "net1"
   external:
     external:
      name: "net2"


Noget mere info:


C:WINDOWSsystem32> Get-NetNat


Name                             : SharedNAT
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 172.24.0.0/20
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : True

C:WINDOWSsystem32> docker info
Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 18
Server Version: 17.03.1-ce
Storage Driver: windowsfilter
 Windows:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: l2bridge l2tunnel nat null overlay transparent
Swarm: inactive
Default Isolation: hyperv
Kernel Version: 10.0 14393 (14393.1066.amd64fre.rs1\_release\_sec.170327-1835)
Operating System: Windows 10 Enterprise
OSType: windows
Architecture: x86\_64
CPUs: 8
Total Memory: 63.84 GiB
Name: PC36144
ID: QYSA:VJE6:OM5A:EJE2:MFJ6:4XLV:UCDN:UTRF:TL5K:IWOO:O2O2:Y6Z3
Docker Root Dir: C:ProgramDataDocker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: -1
 Goroutines: 30
 System Time: 2017-05-04T10:02:36.9325341+02:00
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false


C:WINDOWSsystem32> docker version
Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Tue Mar 28 00:40:02 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.03.1-ce
 API version:  1.27 (minimum version 1.24)
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Tue Mar 28 00:40:02 2017
 OS/Arch:      windows/amd64
 Experimental: true

Bedste reference