在Windows Server 2019的swarm ingress模式下,无法从docker容器使用其专用ip访问主机

在Windows Server 2019的swarm ingress模式下,无法从docker容器使用其专用ip访问主机,docker,docker-swarm,windows-server-2019,Docker,Docker Swarm,Windows Server 2019,我有一个docker swarm,有以下(Azure VM)主机 领导者,10.0.1.4 工人-1,10.0.1.5 工人-2,10.0.1.6 我已在worker-1(10.0.1.5)上安装了“Mssql Xxpress 2017服务器”,可通过端口1433访问数据库 当我部署docker swarm服务时 数据库服务器正在1433上侦听的worker-1(10.0.1.5)中部署的任何容器都无法访问数据库(给出连接超时错误)。 其他容器可以毫无问题地访问数据库 简单地说,容器无

我有一个docker swarm,有以下(Azure VM)主机

  • 领导者,10.0.1.4
  • 工人-1,10.0.1.5
  • 工人-2,10.0.1.6

    我已在worker-1(10.0.1.5)上安装了“Mssql Xxpress 2017服务器”,可通过端口1433访问数据库
  • 当我部署docker swarm服务时

    • 数据库服务器正在1433上侦听的worker-1(10.0.1.5)中部署的任何容器都无法访问数据库(给出连接超时错误)。
    • 其他容器可以毫无问题地访问数据库
    简单地说,容器无法访问它的主机。基本图像是 servercore:ltsc2019

    我在worker-1(I.10.0.1.5)上运行的容器上尝试了“docker exec-it powershell”并尝试了“测试NetConnection 10.0.1.5-端口1433”已获得TcpSucceed:False

    但是当我在其他容器(没有在worker-1上运行)上尝试相同的方法时,得到了tcpsucced:True

    PS C:\exactor\exactor suite>docker信息

    Containers: 0
     Running: 0
     Paused: 0
     Stopped: 0
    Images: 4
    Server Version: 18.09.8
    Storage Driver: windowsfilter
     Windows:
    Logging Driver: json-file
    Plugins:
     Volume: local
     Network: ics l2bridge l2tunnel nat null overlay transparent
     Log: awslogs etwlogs fluentd gelf json-file local logentries splunk syslog
    Swarm: inactive
    Default Isolation: process
    Kernel Version: 10.0 17763 (17763.1.amd64fre.rs5_release.180914-1434)
    Operating System: Windows Server 2019 Datacenter Version 1809 (OS Build 17763.615)
    OSType: windows
    Architecture: x86_64
    CPUs: 2
    Total Memory: 8GiB
    Name: Enactor
    ID: 3T3Y:S6CD:63QF:PQFE:C6Q3:JL3M:3GEJ:AG4I:ID2Q:OVDY:L5C6:A5QO
    Docker Root Dir: C:\ProgramData\docker
    Debug Mode (client): false
    Debug Mode (server): false
    Registry: https://index.docker.io/v1/
    Labels:
     private_ip=10.0.1.5
    Experimental: false
    Insecure Registries:
     127.0.0.0/8
    Live Restore Enabled: false
    

    1/检查使用db的服务是否使用db服务中定义的相同网络。2/检查您是否使用服务名称(docker服务)作为主机名从其他服务访问DB。1/检查使用DB的服务是否使用DB服务中定义的相同网络。2/检查您是否使用服务名称(docker服务)作为主机名从其他服务访问DB。