我正在使用基本的.NET核心项目测试Docker.我从这个docker文件构建和映像:
FROM microsoft/dotnet:latest COPY . /app WORKDIR /app/API RUN ["dotnet", "restore"] RUN ["dotnet", "build"] EXPOSE 5000/tcp CMD ["dotnet", "run", "--server.urls", "http://*:5000"]
我跑了它,它完美无瑕.现在唯一的问题是,它运行的是什么IP?
我在Windows上运行Docker!
问候
我在为docker for windows运行为dotnet asp.net core 2构建的linux容器时遇到了一些问题.
我用来运行我的容器的命令是:
docker run -it --rm -p 3394:3394 --name
我可以对容器进行shell并验证应用程序是否正在侦听并返回结果.
然而,试图从我的机器访问端口3394的应用程序将不工作127.0.0.1
,localhost
或在网络上我的机器的IP地址转换.
但是,运行此命令会提供docker主机分配的IP地址:
docker inspect -f "{{ .NetworkSettings.IPAddress }}"
就我而言,知识产权是172.17.0.2
.但是,访问172.17.0.2:3394
仍然无法正常工作.
最后需要的是在提升的dos提示符下运行以下内容:
route /P add 172.0.0.0 MASK 255.0.0.0 10.0.75.2
这增加了一条路线,所以我的机器没有通过我的WAN寻找地址,这是通过诊断的tracert
.
积分转到https://github.com/docker/for-win/issues/221
你已经在内部暴露了这个端口,所以我建议的另一件事就是在启动你的图像时检查你是否正在打开端口:
docker run -it -p 5000:5000
这将打开实例内的端口5000到本地计算机上的端口5000,然后应该可以访问127.0.0.1:5000
或localhost:5000
.
你也应该确保您接受内的任何主机名Main()
中Program.cs
有.UseUrls("http://*:5000/")
你的WebHostBuilder
.