0

我正在使用 docker compose 在 docker 容器内运行微服务。docker-compose.yml 文件如下。

version: '2.1'
services:
flousermanagement:
  build: 
    context: ../FloUserManagement/bin/Debug/netcoreapp2.0/publish
    dockerfile: Dockerfile
  ports:
   - "5001:5001"
   - "8080:8080"
  volumes:
   - 

      ../FloUserManagement/bin/Debug/netcoreapp2.0/publish/data: 
      c:\floUserManagement\data   

码头工人文件。

 FROM microsoft/dotnet:2.0.0-preview2-sdk-nanoserver
 ENTRYPOINT ["dotnet", "FloUserManagement.dll"]
 ARG source=.
 WORKDIR /floUserManagement
 ENV ASPNETCORE_URLS http://+:5001
 EXPOSE 5001
 EXPOSE 8080
 COPY $source .

我无法连接到 locahost。没有容器运行的代码可以正常工作,但不能在容器内运行。我尝试跟踪容器上的请求,但无法在 locahost:5000 上访问容器内的任何端点。

是不是因为dotnet core 2.0.0-preview2版本升级?是因为 localhost 没有从 IPv4 映射到 IPv6 吗?这可能是什么解决方法?

我在 azure vm 上运行 docker 企业版。Windows Server 2016 数据中心 Intel Xeon 2.4GHz 双核。x64 位 7GB 内存。我使用的是 Docker 企业版,而不是社区版。

4

1 回答 1

0

这是当前 WinNAT 实现中的一个错误。与本地主机发布端口的连接不会在同一 主机上工作。您将能够使用来自外部容器的映射端口,但不能在本地使用。这似乎没有计划在 Windows 2016 的下一个主要版本之前修复。(https://docs.docker.com/docker-for-windows/troubleshoot/#limitations-of-windows-containers-for-localhost-和发布的端口

于 2017-08-03T12:51:29.223 回答