我正在使用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
dockerfile。
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核心2.0.0-preview2版本升级? 是否由于localhost没有从IPv4映射到IPv6? 可能有什么办法解决这个问题?
我在azure vm上运行docker企业版。 Windows Server 2016数据中心 英特尔至强2.4GHz双核。 x64位7GB RAM。我使用的是Docker企业而不是社区版。
答案 0 :(得分:0)
这是当前WinNAT实施中的一个错误。无法从相同的主机连接到localhost发布的端口。您将能够从外部容器使用映射端口,但不能在本地使用。这似乎没有安排在Windows 2016的下一个主要版本中修复。(https://docs.docker.com/docker-for-windows/troubleshoot/#limitations-of-windows-containers-for-localhost-and-published-ports)