Windows Docker容器没有NAT IP地址。无法在本地访问容器

Windows Docker容器没有NAT IP地址。无法在本地访问容器,docker,dockerfile,windows-networking,Docker,Dockerfile,Windows Networking,首先要明确的是,我的docker容器在NetworkSettings.Networks.bridge下有一个IP地址。该IP为172.17.0.2 但是,我无法通过http://172.17.0.2:3000/使用docker run运行后-p 3000:3000节点:8.10.0 我的研究表明,在windows上本地使用docker很粗糙。在以下简短指南中: 我遇到使用网络NAT IP地址的人。我看这推荐了几个地方。但是我的docker inspect的那部分根本不存在。 它返回: "Net

首先要明确的是,我的docker容器在
NetworkSettings.Networks.bridge
下有一个IP地址。该IP为
172.17.0.2

但是,我无法通过
http://172.17.0.2:3000/
使用docker run运行后-p 3000:3000节点:8.10.0

我的研究表明,在windows上本地使用docker很粗糙。在以下简短指南中:

我遇到使用网络NAT IP地址的人。我看这推荐了几个地方。但是我的
docker inspect
的那部分根本不存在。 它返回:

 "NetworkSettings": {                                                                            
 "Bridge": "",                                                                               
 "SandboxID": "0c81d8f7ce5bcba70ec0487bbfe91bc6f221e29d9378c33708fac78d0ae47d3e",            
 "HairpinMode": false,                                                                       
 "LinkLocalIPv6Address": "",                                                                 
 "LinkLocalIPv6PrefixLen": 0,                                                                
 "Ports": {                                                                                  
     "3000/tcp": [                                                                           
         {                                                                                   
             "HostIp": "0.0.0.0",                                                            
             "HostPort": "3000"                                                              
         }                                                                                   
     ]                                                                                       
 },                                                                                          
 "SandboxKey": "/var/run/docker/netns/0c81d8f7ce5b",                                         
 "SecondaryIPAddresses": null,                                                               
 "SecondaryIPv6Addresses": null,                                                             
 "EndpointID": "bbe5f42a5b53c001bd3c2852bc6b22976fb9bab2afcb88b30f6660d7662f526f",           
 "Gateway": "172.17.0.1",                                                                    
 "GlobalIPv6Address": "",                                                                    
 "GlobalIPv6PrefixLen": 0,                                                                   
 "IPAddress": "172.17.0.2",                                                                  
 "IPPrefixLen": 16,                                                                          
 "IPv6Gateway": "",                                                                          
 "MacAddress": "02:42:ac:11:00:02",                                                          
 "Networks": {                                                                               
     "bridge": {                                                                             
         "IPAMConfig": null,                                                                 
         "Links": null,                                                                      
         "Aliases": null,                                                                    
         "NetworkID": "0af66a62bc57ce25491c82f5a13d947ca79f5a879f3c1a6db40a90233eeb04f8",    
         "EndpointID": "bbe5f42a5b53c001bd3c2852bc6b22976fb9bab2afcb88b30f6660d7662f526f",   
         "Gateway": "172.17.0.1",                                                            
         "IPAddress": "172.17.0.2",                                                          
         "IPPrefixLen": 16,                                                                  
         "IPv6Gateway": "",                                                                  
         "GlobalIPv6Address": "",                                                            
         "GlobalIPv6PrefixLen": 0,                                                           
         "MacAddress": "02:42:ac:11:00:02",                                                  
         "DriverOpts": null                                                                  
     }                                                                                       
 }                   
如您所见,NAT部分完全缺失。我在网上找不到任何提到为什么或如何解决的东西。我希望它的缺失会是一件好事,让连接变得更容易。唉,事实并非如此。感谢您的帮助。以下是dockerfile:

FROM node:8.10.0
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
CMD ["./node_modules/gulp/bin/gulp.js", "assets"]
CMD [ "node", "app.js" ]
EXPOSE 3000

这是docker windows下的一个已知错误。它固定在19.03。因此,请尝试更新您的docker引擎

发布端口时,可以通过与该已发布端口上的主机联系来访问该端口。除非从共享用户创建的网络上的另一个容器访问,否则不应直接访问容器。@BMitch正确,所以localhost:3000应该可以工作,对吗?不是。我遵循了我在许多“dockerize a node app”教程中看到的所有步骤,它们的结尾都是一样的。无法访问端口3000上提供的网站如果不清楚我正在windows上运行docker,则所有图像和容器都在我的windows计算机上。
$docker\u HOST
是否设置为任何值?是否有指向记录和修复此问题的链接?我在19.03.4,我有这个或一个非常类似的问题。