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

问题描述 投票:0回答:1

我有一个运行的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"]

docker dockerfile
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.