之前我使用 Docker 工具包,可以用它docker-machine inspect <machine-name>
来查找 Docker 机器的 IP,以便查看其中的容器所提供的页面。
我已经升级到 docker beta 客户端(适用于 mac),但找不到页面所在的位置。
我猜想,因为它是 docker pure,而不是 docker-machine,所以我会在 localhost 上看到暴露的端口。但它们并没有打开。即使通过 kitematic,我也可以导航到暴露的端口 (80),但什么也看不到。
$ docker inspect tiny_cori | jq '.[].HostConfig.PortBindings'
{
"80/tcp": [
{
"HostIp": "",
"HostPort": "80"
}
]
}
$ docker inspect tiny_cori | jq '.[].NetworkSettings.IPAddress'
"172.17.0.2"
$ curl 172.17.0.2:80/status
^C
$ docker exec -t -i tiny_cori /bin/bash
root@f1c303f60a15:/# curl localhost:80/status
{"status":"OK"}
root@f1c303f60a15:/# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1
link/sit 0.0.0.0 brd 0.0.0.0
3: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1
link/tunnel6 :: brd ::
4: ip6gre0@NONE: <NOARP> mtu 1448 qdisc noop state DOWN group default qlen 1
link/gre6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
26: eth0@if27: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:2/64 scope link
valid_lft forever preferred_lft forever
172.17.0.2 真的是我的容器的 IP 吗?如果不是,我在哪里可以找到 IP 是什么?或者我遇到了端口映射问题?
答案1
您正在查看容器内的 IP 地址是 172.17.0.2,并且仅存在于 docker 容器“内部”(以及它们之间)。
您要连接的 IP 地址是主机的 IP 地址。在 Mac 上执行 ifconfig 并找到正确的 IP 地址(通常为 192.168.xy 或 10.xyz)。Localhost 也应该可以在容器外部工作。
答案2
输入以下命令,你将获得你的 docker 容器 ip
$docker inspect <docker-container-name>
向下滚动,您将在“网络设置“
答案3
Docker for Mac 在 IP 地址 127.0.0.1 上运行
答案4
我相信 127.0.0.1 适用于本地主机。
要获取 Mac 上运行的 docker id。在终端中运行“ifconfig”,结果中除了 127.0.0.1 之外还会显示它
大部分类似于 192.168.xy
希望能帮助到你。