我有一个运行的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容器端口映射到主机端口。
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