无法连接到OSX上的Docker容器

我是新来的Docker,我似乎无法连接到任何容器。

我安装了Docker Toolbox 。 现在我正在试图让造船厂工作。 我遵循Docker快速入门terminal中的步骤。 说明说:

一旦部署,脚本将输出URL连同证书信息。

造船厂安装程序结束于:

Shipyard available at http://10.0.2.15:8080 Username: [elided] Password: [elided] 

但是,我在浏览器上访问了http://10.0.2.15:8080 ,并没有连接。

在另一个Docker快速入门terminal中,我做了一个docker ps来查看容器是什么,并获得它的IP地址,我得到:

 $ docker inspect a4755 | grep IPAddress "SecondaryIPAddresses": null, "IPAddress": "172.17.0.8", "IPAddress": "172.17.0.8", 

我不知道为什么IP是不同的,但我试图连接到http://172.17.0.8:8080 ,这也没有工作。 http://localhost:8080也失败了。

当我试图运行docker-gunicorn-nginx时,这也发生了 – 一切都开始了,但是我无法连接到机器。

是什么赋予了?

如果你通过Docker 在Mac OS X上安装,你会发现在OSX上,Docker容器不能在主机上运行:

在Linux上的Docker安装中,物理机器既是本地主机又是Docker主机。 在networking中,localhost意味着你的电脑。 Docker主机是容器运行的计算机。

在典型的Linux安装中,Docker客户端,Docker守护进程以及任何容器直接在本地主机上运行。 这意味着您可以使用标准本地主机寻址(如localhost:8000或0.0.0.0:8376)来处理Docker容器上的端口。

[…]

在OS X安装中,docker守护进程在名为default的Linux VM内运行。 默认是一个轻量级的Linux虚拟机,专门用来在Mac OS X上运行Docker守护进程。虚拟机完全从RAM运行,大小仅为24MB,启动时间大约为5s。

在OS X中,Docker主机地址是Linux VM的地址。 当您使用docker-machine启动虚拟机时,会分配一个IP地址。 启动容器时,容器上的端口映射到VM上的端口。 要在实践中看到这一点,请通过本页面的练习。

确实,打开一个新的Docker快速入门terminal,我看到:

 docker is configured to use the default machine with IP 192.168.99.100 

而且,开放http://192.168.99.100:8080把我带到造船厂。 成功!

你可以尝试执行这个命令:

 docker-machine ip default 

它会返回一些东西,如:

 192.168.99.100 

要获取端口号:

 docker ps 

输出示例(向右滚动以查看端口映射):

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 113346425f20 springio/spring1 "sh -c 'java $JAVA_OP" 34 minutes ago Up 34 minutes 0.0.0.0:8080->8080/tcp pensive_kirch 

要validation它是否在工作:

curl 192.168.99.100:8080