Docker - 使用其IP浏览到docker容器

时间:2016-03-21 08:28:50

标签: ubuntu docker

我在我的Ubuntu计算机上启动了一个Docker容器,并使用以下命令将所有8080端口转发到其80端口:

sudo docker run -d -p 8080:80 -v /var/www/html/work:/var/www my_server --name "server"

我使用以下命令获取容器IP:

 sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' server

并收到:

 172.17.0.33

我在phpinfo()

中有一个带有/var/www/html/work/phpinfo.php命令的php文件

但浏览到172.17.0.33:8080/phpinfo.php时,我在浏览器上收到一条错误消息,说它无法连接到服务器。

我的胆量告诉我,我需要以某种方式将容器IP暴露给世界,我只是不知道如何......

在OSX中我使用docker-machine默认ip来浏览容器,但在Ubuntu中我没有一个docker-machine

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

您应该可以使用主机localhost:8080或主机公共IP联系服务器。

但是如果您使用的是由docker守护程序管理的容器IP,那么您将使用端口80,而不是主机端口8088。

另请参阅“Network configuration”:

  

当Docker启动时,它会在主机上创建一个名为docker0的虚拟接口。它从主机上未使用的RFC 1918定义的私有范围中随机选择一个地址和子网,并将其分配给docker0
  几分钟前,当我启动它时,Docker做出了选择172.17.42.1/16 - 一个16位网络掩码,为主机及其容器提供65,534个地址。

     

docker0不是普通的界面。它是一个虚拟以太网桥,可以自动在连接到它的任何其他网络接口之间转发数据包   这允许容器与主机和彼此进行通信

最好使用只能访问已发布内容的主机,而不是容器本身。

答案 1 :(得分:0)

如果您在Ubuntu中运行docker,请使用Ubuntu服务器ip访问您的网站。

在Ubuntu服务器上运行浏览器时,只需访问即可 http://localhost:8080/phpinfo.php