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

时间:2018-09-16 14:51:42

标签: docker dockerfile

我有一个正在运行的Docker容器,其中显示PORTS 9191 / tcp。因此,在我的浏览器上,我尝试使用localhost:9191 / api / ....访问服务器。但是,浏览器抛出错误This site can’t be reached

这是docker ps的日志 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c214aefed15e shah "youtube-dl-server -…" 6 seconds ago Up 5 seconds 9191/tcp boring_swirles

这是我的docker文件的样子

FROM mariozig/youtube-dl_server RUN pip install --pre youtube_dl_server EXPOSE 9191 ENTRYPOINT ["youtube-dl-server", "--host=0.0.0.0"]

1 个答案:

答案 0 :(得分:1)

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

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

docker run -d -p HOST_PORT:CONTAINER_PORT IMAGE_NAME
此命令中的

-p将指定您将主机端口转发到容器端口。在本地主机的端口HOST_PORT中,将调用容器的端口CONTAINER_PORT

现在,当您访问HOST_IP:HOST_PORT时,主机会将请求重定向到已映射此HOST_PORT的相应容器。

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