docker - 本地主机无法正常工作的docker Windows 10

标签 docker dockerfile docker-for-windows asp.net-docker-extensions

我正在使用VS2017 docker 支持。 VS为我创建了DockerFile,当我构建docker-compose文件时,它会创建容器并在172.x.x.x IP地址上运行该应用程序。但是我想在本地主机上运行我的应用程序。

我做了很多事情,但没有任何效果。跟随docker docs作为启动器和building microsoft sample app。第二个链接运行正常,但是尝试第一个链接方法时出现HTTP错误404。

任何帮助表示赞赏。

最佳答案

为了访问您在Docker Docs上发布的示例(您指出该示例不起作用),请执行以下步骤,

1-列出所有正在运行的Docker容器

docker ps -a

运行此命令后,如果您正确遵循了docker docs示例,则应该能够查看当前正在运行的所有docker容器,并且应该在其中看到名称为webserver的容器。

2-获取运行webserver容器的IP地址。为此,请运行以下命令。
 docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" webserver

现在,您应该获取webserver容器正在运行的IP地址,希望您熟悉此步骤,因为该步骤甚至在您附带问题的Microsoft示例应用程序示例中也可以使用。

运行上述命令后,访问获得的IP地址,您应该会看到所需的输出。

回答您的第一个问题(在Windows的docker中使用localhost访问docker容器)时,由于默认NAT网络堆栈的限制,在Windows主机中,您无法使用localhost访问容器。可以通过访问link获得有关此问题的更详细的说明。似乎Docker文档尚未更新,但此问题仅在Windows主机中存在。

还报告了一个问题-请按照 link 进行操作。

希望这可以帮助你。

编辑

此问题的解决方案似乎将在将来的Windows版本中提供。但是该版本发布后,Windows主机中就提供了此限制。点击此链接-> https://github.com/MicrosoftDocs/Virtualization-Documentation/issues/181

关于docker - 本地主机无法正常工作的docker Windows 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47010047/

相关文章:

docker - 来自守护程序的错误响应:挂载被拒绝-运行昨晚正在运行的docker应用程序时出错

amazon-web-services - 使用 dockerrun 源包将 ebextensions 配置放在 AWS Elastic Beanstalk Docker 部署中的什么位置?

Docker 构建在入口点的 COPY 或 ADD 语句上失败,仅限 Windows

Docker:Windows主机上的MariaDB/MySQL启动失败

c++ - 无法为简单程序运行 docker 容器

linux - 在 dockerfile 中设置 ulimit 参数

docker - 当容器开始使用Dockerfile时如何触摸文件

Windows 10 家庭版上的 Docker 安装

macos - docker 卷上的 inode 耗尽

docker - Docker RabbitMQ以分离模式记录