Docker 无法通过本地主机访问容器

Docker 无法通过本地主机访问容器,docker,docker-compose,dockerfile,docker-run,docker-command,Docker,Docker Compose,Dockerfile,Docker Run,Docker Command,Docker新手在这里 我创建了一个简单的asp.net web应用程序,它在运行时显示应用程序的默认页面 使用docker build命令,我从中创建了一个映像,并进一步使用docker run-d-name{containername}-p81:8080{imageid}命令。现在,当我试图通过浏览器上的本地主机访问容器映像时,即,我收到“无法访问站点”错误。我希望应用程序的同一默认页面在公开的端口81上打开 我的docker客户端是windows/amd,docker服务器是linux/a

Docker新手在这里

我创建了一个简单的asp.net web应用程序,它在运行时显示应用程序的默认页面

使用docker build命令,我从中创建了一个映像,并进一步使用docker run-d-name{containername}-p81:8080{imageid}命令。现在,当我试图通过浏览器上的本地主机访问容器映像时,即,我收到“无法访问站点”错误。我希望应用程序的同一默认页面在公开的端口81上打开

我的docker客户端是windows/amd,docker服务器是linux/amd。我使用的docker版本是19.03.08

使用docker inspect我可以看到

"PortBindings": {
                "8080/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "81"
                    }
                ]
            },
和IP地址:在网络设置中


如果有任何帮助或建议,我将不胜感激

从所附的屏幕截图来看,您的容器似乎一启动就被杀死了。您应该在容器中运行一个进程,以保持其正常运行。只有这样,您才能通过主机ip:端口进行访问 在这种情况下http://localhost:81

在docker ps-a中,状态为退出。理想情况下,如果您的容器处于启动和运行状态,它应该是这样的

docker ps

CONTAINER ID        IMAGE                        COMMAND                CREATED              STATUS              PORTS               NAMES
4c01db0b339c        ubuntu:12.04                 bash                   17 seconds ago       Up 16 seconds

做http://127.0.0.1:81/ 工作?@hmm不,同样的问题。你的应用程序运行在哪个端口,我不认为是8080?你是在Windows上使用Docker工具箱,还是Docker桌面应用程序?当你启动应用程序时,它是否打印一个监听。。。消息?@adii和davidmaze:在Docker文件中做了一些更改后,现在我可以让容器处于运行状态。我可以在docker desktop中看到samecontainer处于运行状态。此外,端口8080被曝光请参见链接中的图片。。虽然现在我得到的网页不工作。Localhost未发送任何数据错误。[链接]谢谢。我使容器处于运行状态,不再立即退出。但当我在浏览器中查看它时,我发现这个页面不工作。localhost未发送任何数据。尝试使用docker exec-it containerid bash登录到您的容器外壳,这将带您进入容器外壳。尝试检查您的进程是否按预期运行,并尝试将netcat连接到您的容器端口nc-zv localhost 8080