我是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时 - 一切都已开始,但我无法连接到机器。
是什么给出了?
答案 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}}