我正在运行Mac OS 10.9.5 (小牛),我跟随https://docs.docker.com/installation/mac/安装了Docker。当我运行Docker时,即使boot2docker虚拟机在后台运行,我也会收到超时错误消息。
nikhil@macbook ~> boot2docker status
running
nikhil@macbook ~> boot2docker ip
The VM's Host only interface IP address is: 192.168.59.103
nikhil@macbook ~> docker run hello-world
2014/11/01 01:01:31 Post https://192.168.59.103:2376/v1.15/containers/create: dial tcp 192.168.59.103:2376: i/o timeout
nikhil@macbook ~> docker search ubuntu
2014/11/01 01:02:40 Get https://192.168.59.103:2376/v1.15/images/search?term=ubuntu: dial tcp 192.168.59.103:2376: i/o timeout
我已经验证了Docker正在boot2docker虚拟机中运行,并且我的端口是正确的。
nikhil@macbook ~> boot2docker ssh
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.3.1, build master : 9a31a68 - Fri Oct 31 03:14:34 UTC 2014
Docker version 1.3.1, build 4e9bbfa
docker@boot2docker:~$ sudo netstat -ntpl | grep docker
tcp 0 0 :::2376 :::* LISTEN 629/docker
发布于 2014-11-07 23:33:53
我也遇到过这个问题,这里有一个临时的解决方案。
首先,打开VirtualBox并检查boot2docker VM上的网络设置,以查看host only
适配器的名称。在我的例子中,它是vboxnet1;对于您来说,它可能是vboxnet0。
然后,应用以下命令:
sudo route -nv add -net 192.168.59 -interface vboxnet1
现在您应该能够运行Docker命令了。
有关详细信息,请参阅this issue。
随着时间的推移,我注意到这个问题的一个共同点是Cisco anyconnect (包括我在内),这是值得的。
发布于 2015-01-07 02:24:27
我使用的是OS X v10.10 (Yosemite)和Cisco Anyconnect (这显然是使用boot2docker的糟糕组合),以下几点终于对我起作用了(感谢linked GitHub issue comment):
这些步骤将添加端口转发规则并修改您的环境,使Docker指向127.0.0.1
(而不是192.168.59.103
或其他NATed IP地址)。
First -需要安装boot2docker,但不能运行。
如果它当前正在运行-立即停止它:
boot2docker down
添加规则以将流量从127.0.0.1:2376
转发到boot2docker vm上的端口2376
:
vboxmanage modifyvm "boot2docker-vm" --natpf1 "docker,tcp,127.0.0.1,2376,,2376"
启动boot2docker:
boot2docker up
设置默认DOCKER环境变量:
$(boot2docker shellinit)
覆盖指向127.0.0.1
的DOCKER_HOST
变量
export DOCKER_HOST=tcp://127.0.0.1:2376
现在您应该能够运行docker命令了:
docker version
发布于 2014-11-14 00:30:10
这也发生在我身上,之前的答案都没有解决这个问题。
今天,多亏了一个同事的建议,我没有先启动我的VPN连接。我重新启动了我的机器,并从头开始使用Docker。
boot2docker init
boot2docker up
$(boot2docker shellinit)
docker run hello-world
它像预期的那样工作!
我发现Florian Rosenberg的this post很有用。我仔细阅读了这篇文章,但我认为他在第一部分中提出的大部分建议已经被纳入最新版本的boot2docker中。但最有见地的是“连接到VPN,一切都会崩溃”。
它建议寻找拒绝任何对任何的防火墙规则。因此,在没有启动VPN的情况下,我寻找了这个规则,但它不在那里。果然,一旦我启动了我的VPN,我得到了以下(不同的)错误...
docker run hello-world
2014/11/13 11:11:18 Post https://192.168.59.103:2376/v1.15/containers/create: dial tcp 192.168.59.103:2376: permission denied
我检查了防火墙规则,果然添加了一个新规则...
sudo ipfw -a list | grep "deny ip"
00411 1 64 deny ip from any to any
一旦我使用以下命令删除该防火墙规则:
sudo ipfw delete 00411
我能够从OS和X命令shell中与Docker对话。
https://stackoverflow.com/questions/26686358
复制相似问题