Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从windows Server 2016虚拟机主机外部访问容器化asp.net核心(docker EE windows容器)?_Docker_Networking_Asp.net Core 2.0_Windows Container - Fatal编程技术网

如何从windows Server 2016虚拟机主机外部访问容器化asp.net核心(docker EE windows容器)?

如何从windows Server 2016虚拟机主机外部访问容器化asp.net核心(docker EE windows容器)?,docker,networking,asp.net-core-2.0,windows-container,Docker,Networking,Asp.net Core 2.0,Windows Container,我是docker和windows容器世界的新手。我正在使用ASP.NET Core 2.0和SQL Server 2016后端创建一个示例应用程序。我能够直接在Windows Server 2016虚拟机上成功运行应用程序。接下来,我使用Docker EE Windows容器将其装箱。我启动了容器,能够从Windows Server 2016虚拟机主机浏览应用程序 这是我构建和启动容器的方式,请假设我已使用适当的值创建了.dockerfile docker build -t testapi .

我是docker和windows容器世界的新手。我正在使用ASP.NET Core 2.0和SQL Server 2016后端创建一个示例应用程序。我能够直接在Windows Server 2016虚拟机上成功运行应用程序。接下来,我使用Docker EE Windows容器将其装箱。我启动了容器,能够从Windows Server 2016虚拟机主机浏览应用程序

这是我构建和启动容器的方式,请假设我已使用适当的值创建了.dockerfile

docker build -t testapi .

docker run -d --name testapi_app --rm -it -p 8000:80 testapi
当我跑的时候

docker network ls
我明白了

NETWORK ID          NAME                DRIVER              SCOPE
38c9f8e165bf        nat                 nat                 local
f97c096a0ef6        none                null                local
当我运行以下命令时(02f4是容器id的前4个字符)

我可以看到IPv4地址为172.25.5.26

我可以使用windows server 2016虚拟机从主机浏览应用程序

我得到了回复

如果有人能给我提供一些资源,帮助我如何在windows server 2016 VM主机上使用docker EE使windows容器托管的应用程序可以从主机VM外部浏览,我将不胜感激

我觉得我可能必须改变一些网络选项,但不确定我必须改变什么


任何帮助都将不胜感激。

我相信这个问题最好还是继续问(和回答),因为它更多的是托管环境的配置和设置,而不是与直接编码相关。很好的建议,谢谢。我会把问题贴在那里。你明白
-p8000:80
在做什么吗?你为什么认为你需要集装箱IP?@cricket_007,谢谢。我只是在学习教程,没有注意到-p8000:80,在您提出这个问题后,我意识到-p将容器的端口80暴露给主机上的8000端口。我现在可以访问该应用程序。我没有尝试浏览,而是使用http://:8000/api/valuesUp从外部访问它,这就是方法;)
docker exec 02f4 ipconfig