我无法访问正在运行的docker容器的代理

我无法访问正在运行的docker容器的代理,docker,dockerfile,Docker,Dockerfile,我有一个正在运行的Docker容器,其中显示端口9191/tcp。所以在我的浏览器上,我尝试使用localhost:9191/api/访问服务器。。。。但是,浏览器会抛出一个错误无法访问此站点 这是docker ps的日志 容器ID映像命令已创建状态端口名称 c214aefed15e shah“youtube dl服务器-…”6秒前上升5秒9191/tcp旋转 这就是我的docker文件的样子 来自mariozig/youtube-dl_服务器 运行pip安装--预安装youtube\u

我有一个正在运行的Docker容器,其中显示端口9191/tcp。所以在我的浏览器上,我尝试使用localhost:9191/api/访问服务器。。。。但是,浏览器会抛出一个错误
无法访问此站点

这是docker ps的日志

容器ID映像命令已创建状态端口名称
c214aefed15e shah“youtube dl服务器-…”6秒前上升5秒9191/tcp旋转

这就是我的docker文件的样子


来自mariozig/youtube-dl_服务器
运行pip安装--预安装youtube\u dl\u服务器
曝光9191
入口点[“youtube dl服务器”,“--host=0.0.0.0”]

您尚未将docker容器端口映射到主机端口

docker容器在主机上运行。并且主机不知道哪些请求被定向到docker容器。为此,您必须使用
docker run
命令中的
-p
标志将主机端口映射到docker容器端口,如下所示:

docker run -d -p HOST_PORT:CONTAINER_PORT IMAGE_NAME
此命令中的
-p
将指定您正在将主机端口转发到容器端口。在您的本地主机中,端口
host\u port
将调用您的容器的端口
CONTAINER\u port

现在,当您访问
HOST\u IP:HOST\u端口
时,主机将把请求重定向到该主机\u端口映射到的相应容器


例如,我启动了一个tomcat docker容器,并使用上面的命令将tomcat容器的8080端口映射到主机的9092端口。当我使用docker ps时,我可以看到
端口下的映射为
0.0.0.0:9092->8080/tcp

谢谢。命令帮助我解决了这个问题。现在问题解决了,我记得我以前也遇到过这个问题。然而,我仍然感到困惑。我认为运行映像时传递的参数顺序无关紧要。但在这种情况下,传递给docker run的参数顺序很重要。这失败
docker run suprit dl-p 8080:9191
但这解决了问题
docker run-d-p 8080:9191 shah
在失败之前使用图像名称,但在结束时使用解决了问题。根据命令是
docker run[OPTIONS]image[command][ARG ARG code>。所以像-p或-d或-it等所有标志都必须在图像名称之前。在图像名称之后,可以传递该命令。所以秩序确实很重要。