nik*_*hil 63 docker osx-mavericks boot2docker
我正在运行Mac OS 10.9.5,我已经按照https://docs.docker.com/installation/mac/来安装docker .即使boot2docker VM在后台运行,我运行docker时也会收到超时错误消息.
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
Run Code Online (Sandbox Code Playgroud)
我已经验证了docker在boot2docker vm中运行并且我的端口是正确的.
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
Run Code Online (Sandbox Code Playgroud)
小智 64
我正在使用OSX Yosemite和Cisco Anyconnect(显然使用boot2docker这是一个糟糕的组合),以下内容最终对我有用(感谢链接的GitHub问题评论):
这些步骤将添加端口转发规则并修改您的环境以使docker指向127.0.0.1(而不是192.168.59.103或其他NATed IP).
首先 - 需要安装boot2docker但不运行.
如果它当前正在运行 - 现在停止它:
boot2docker down
Run Code Online (Sandbox Code Playgroud)
添加规则以将流量从转发127.0.0.1:2376到2376boot2docker vm上的端口:
vboxmanage modifyvm "boot2docker-vm" --natpf1 "docker,tcp,127.0.0.1,2376,,2376"
Run Code Online (Sandbox Code Playgroud)
启动boot2docker:
boot2docker up
Run Code Online (Sandbox Code Playgroud)
设置默认的DOCKER环境变量:
$(boot2docker shellinit)
Run Code Online (Sandbox Code Playgroud)
覆盖DOCKER_HOST变量以指向127.0.0.1:
export DOCKER_HOST=tcp://127.0.0.1:2376
Run Code Online (Sandbox Code Playgroud)
现在您应该能够运行docker命令:
docker version
Run Code Online (Sandbox Code Playgroud)
dar*_*has 57
我也有这个问题,这是临时解决方案.
首先,打开virtualbox并检查boot2docker vm上的网络设置,以查看host only适配器的名称.就我而言,它是vboxnet1; 对你而言,它可能是vboxnet0.
然后,应用此命令:
sudo route -nv add -net 192.168.59 -interface vboxnet1
Run Code Online (Sandbox Code Playgroud)
现在你应该能够运行docker命令了.
有关更多信息,请参阅此问题
编辑:我注意到这个问题的一个共同点是cisco anyconnect(包括我),fwiw
小智 45
这是我为解决这个问题所做的工作(我使用OSX Yosemite并且接受的答案对我不起作用):
boot2docker delete- 警告:这会删除所有泊坞窗图像.boot2docker initboot2docker up现在,Docker通过iTerm2从OS X命令行工作.
小智 6
这也发生在我身上,以上都没有解决问题.
今天,感谢同事的建议,我没有先启动我的VPN.我重新启动了我的机器,并从头开始使用docker.
boot2docker init
boot2docker up
$(boot2docker shellinit)
docker run hello-world
Run Code Online (Sandbox Code Playgroud)
按预期工作!
我发现Florian Rosenberg的这篇文章很有用.我详细阅读了它,但我认为他在第一部分中提出的大部分内容已被考虑到最新版本的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
Run Code Online (Sandbox Code Playgroud)
我检查了防火墙规则,确定添加了新规则... sudo ipfw -a list | grep"deny ip"00411 1 64拒绝ip从任何到任何
一旦我删除了防火墙规则:sudo ipfw delete 00411
我能够从OSX命令shell与docker交谈.
小智 5
好的,所以这也发生在我身上.
首先,设置环境变量是必要的.但是,之后,即使在那之后我仍然会收到i/o超时错误.
因此,不是通过运行应用程序包(单击boot2docker图标)来启动boot2docker,而是从命令行启动它.
我第一次执行,
$boot2docker init
Run Code Online (Sandbox Code Playgroud)
这就是说,VM已经运行了.
然后我继续尝试启动它.
$boot2docker start
Run Code Online (Sandbox Code Playgroud)
这开始了.
您可以通过运行来验证它
$boot2docker info
Run Code Online (Sandbox Code Playgroud)
它会打印有关正在运行的实例的JSON.
然后,你可以进入它并运行
$boot2docker ssh
$docker run hello-world
Run Code Online (Sandbox Code Playgroud)
而已.希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
39558 次 |
| 最近记录: |