Docker端口似乎不会暴露在macos上

时间:2018-02-14 13:56:53

标签: macos docker django-rest-framework docker-machine

我尝试使用以下命令运行一个运行djangorestframework服务器的容器:

docker run --tty --interactive --detach \
  --publish "$PUBLISH" \
  --name $NAME \
  --volume "$PWD:/home/gateway/project" \
  gateway

其中$ PUBLISH ==" 8000:8000"

Unforntunaly,当我尝试在浏览器中加载页面时,似乎端口未被转发。

我从正在运行的容器内部进行了编码,端口8000在127.0.0.1上打开 我对虚拟机进行了编码,端口已关闭。我不知道为什么。

docker日志显示该服务正在运行,但未收到任何请求。是的,主机端口关闭似乎很明显。

哦,和docker ps秀

0.0.0.0:8000->8000/tcp
PORTS栏上的

我做错了什么,如何访问我的页面?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

TL; DR

尝试使用-p 8000:8000,如下所示:

docker run --tty --interactive --detach \
--publish "$PUBLISH" \
--name $NAME \
--volume "$PWD:/home/gateway/project" \
-p 8000:8000
gateway

然后您只需使用netcat检查

即可
nc -vz 127.0.0.1 8000
  

除EXPOSE指令外,图像开发人员对网络没有太多控制权。 EXPOSE指令定义提供服务的初始传入端口。这些端口可用于容器内的进程。操作员可以使用--expose选项添加到公开的端口。

     

要公开容器的内部端口,操作员可以启动   带有-P或-p标志的容器。可以访问暴露的端口   主机和端口可供任何可以访问的客户端使用   主机。

了解更多HERE