无法连接到OSX上的Docker容器

时间:2016-03-08 21:23:49

标签: macos docker

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

我安装了Docker Toolbox。现在我试图让Shipyard工作。我按照Docker Quickstart Terminal中的步骤进行操作。说明说:

  

部署完成后,脚本将输出要连接的URL以及凭据信息。

Shipyard安装程序以:

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

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

在另一个Docker快速入门终端中,我做了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时 - 一切都已开始,但我无法连接到机器。

是什么给出了?

2 个答案:

答案 0 :(得分:17)

如果您通过Docker' Installation on Mac OS X阅读,您会在OSX上看到,Docker容器不会在主机上运行:

  

在Linux上的Docker安装中,您的物理机器既是localhost又是Docker主机。在网络中,localhost表示您的计算机。 Docker主机是容器运行的计算机。

     

在典型的Linux安装中,Docker客户端,Docker守护程序和任何容器都直接在localhost上运行。这意味着您可以使用标准的localhost寻址(如localhost:8000或0.0.0.0:8376)来解决Docker容器上的端口。

     

[...]

     

在OS X安装中,docker守护程序在名为default的Linux VM中运行。默认情况下是一个轻量级Linux VM,专门用于在Mac OS X上运行Docker守护程序。虚拟机完全从RAM运行,下载量小〜24MB,启动时间大约为5秒。

     

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

确实,打开一个新的Docker Quickstart终端,我看到了:

docker is configured to use the default machine with IP 192.168.99.100

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

答案 1 :(得分:7)

您可以尝试执行此命令:

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

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

curl 192.168.99.100:8080

验证它是否正常工作:

{{1}}