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