docker端口不可访问

一个愚蠢的问题。 但是我不能回答…
我有几个正在运行的容器 在这里输入图像说明

这里是DockerFile –

FROM microsoft/aspnetcore:2.0 ARG source WORKDIR /app EXPOSE 80 COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["dotnet", "DockerAgain.dll"] 

我用这个命令来创build容器

 docker run -p 4004:80 from_command_line 

问题
浏览器为http:// localhost:4004返回“not found”错误为什么? 我该如何解决这个问题? 在容器内的端口暴露,端口redirect…我感到困惑和失望

首先要testing的是检查你的应用程序在容器内是否可用

 docker exec <container id> [nc|curl|telnet|wget|whatever-you-got] localhost:80 

尽pipe如此,一个常见的原因是您的应用程序在容器外部不可用,是因为您的应用程序默认是在localhost eth中映射的,并且不能从容器外部请求。

我不知道很多的asp.net,但你必须将你的应用程序映射到接口0.0.0.0