如何从Windows Docker容器连接到主机上的SQLEXPRESS

Dan*_*iel 6 networking docker

我正在开发要在Docker中运行的ASP.NET Core应用程序。在开发过程中,我希望容器连接到在我的开发机器(也是我的docker主机)上运行的SQLEXPRESS。但是,据我所知,容器根本无法到达主机。我无法连接到SQL或从容器ping主机IP。我可以在主机上本地运行该应用程序,并可以很好地连接到SQL Server,因此我怀疑是否可以在可以从容器ping主机的位置获得它,也可以连接到SQL。

主机在主适配器上的IP为10.0.0.5,在“ HNS Internal NIC”上的IP为172.30.96.1,我认为这是Docker使用的主机。

为了测试基本连通性,我尝试从容器内部ping:

docker exec -i containername cmd
c:\app ping 10.0.0.5
Request timed out
c:\app ping 172.30.96.1
Request timed out
Run Code Online (Sandbox Code Playgroud)

基于一些类似的帖子,我也尝试连接到“主机”网络,但是,此版本的docker显然不可用。我怀疑这对于Linux来说更多:

docker run --net="host" ...
network host not found.  
Run Code Online (Sandbox Code Playgroud)

我还发现了类似的Windows 10帖子,其中建议使用“透明”网络。有了这个网络,我无法连接或断开连接:

docker network create --driver transparent trans --gateway 10.0.0.1 --subnet 10.0.0.1/16
docker run --net=trans ...
docker exec -i containername cmd
c:\app> ipconfig
IPv4 address: 10.0.205.104
c:\app> ping 10.0.0.5
Request timed out
c:\app> exit
ping 10.0.205.104
Request timed out
Run Code Online (Sandbox Code Playgroud)

这是我的码头工人信息:

 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 10
 Server Version: 17.03.2-ee-5
 Storage Driver: windowsfilter
  Windows:
 Logging Driver: json-file
 Plugins:
  Volume: local
  Network: l2bridge l2tunnel nat null overlay transparent
  Log:
 Swarm: inactive
 Default Isolation: process
 Kernel Version: 10.0 14393 (14393.1593.amd64fre.rs1_release.170731-1934)
 Operating System: Windows Server 2016 Datacenter
 OSType: windows
 Architecture: x86_64
 CPUs: 4
 Total Memory: 8GiB
 Name: danielsdev5
 ID: XLTN:PBAQ:BU7C:BMR6:O2VJ:DQKQ:P7TY:6QR7:NWEI:GEIF:OFND:ZVFE
 Docker Root Dir: C:\ProgramData\Docker
 Debug Mode (client): false
 Debug Mode (server): false
 Registry: https://index.docker.io/v1/
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
Run Code Online (Sandbox Code Playgroud)