我正在开发一个在Docker中运行的ASP.NET Core应用程序。在开发过程中,我希望容器能够连接到我的开发机器上运行的SQLEXPRESS,这也是我的docker主机。但是,我最好能告诉容器根本无法到达主机。我无法连接到SQL或从容器ping主机IP。我可以在我的主机上运行本地应用程序并连接到SQL Server就好了,所以我怀疑如果我可以从容器中ping主机,我可以连接到SQL。
主机在主适配器上的ip为10.0.0.5,在" HNS内部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
根据一些类似的帖子,我也尝试连接到一个"主机"网络,但显然这个版本的docker不可用。我怀疑这更适合linux:
docker run --net="host" ...
network host not found.
我还发现了类似的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
这是我的码头信息:
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