【问题标题】:OSX boot2docker hangs on "Waiting for VM and Docker daemon to start …"OSX boot2docker 挂起“等待 VM 和 Docker 守护进程启动……”
【发布时间】:2014-12-23 04:22:58
【问题描述】:

我已经在OSX 10.8.5 上安装了boot2docker,看起来安装很顺利,但是当我尝试启动boot2docker 时,我得到了以下信息,它会无限期挂起:

$ /usr/local/bin/boot2docker up 
Waiting for VM and Docker daemon to start...
..........................................................................oooooooooooooooooooooooooooooo

我应该采取哪些步骤来调试它?我无法找到有关此特定问题的任何信息。

$ boot2docker version
Boot2Docker-cli version: v1.4.1
Git commit: 43241cb

$ docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64

$ boot2docker -v up
Boot2Docker-cli version: v1.4.1
Git commit: 43241cb
2014/12/23 00:19:25 executing: VBoxManage showvminfo boot2docker-vm --machinereadable
2014/12/23 00:19:25 executing: VBoxManage showvminfo boot2docker-vm --machinereadable
2014/12/23 00:19:25 executing: VBoxManage showvminfo boot2docker-vm --machinereadable
Waiting for VM and Docker daemon to start...
.Connecting to tcp://localhost:2022 (attempt #0).Connecting to tcp://localhost:2022 (attempt #0).Connecting to tcp://localhost:2022 (attempt #0).Connecting to tcp://localhost:2022 (attempt #0).Connecting to tcp://localhost:2022 (attempt #0).^C


在我的~/.bash_profile 文件中:

export DOCKER_HOST=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/Me/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1


当我打开VirtualBox 时,我看到的是:


我已经使用Virtual Box GUI 尝试了powering offremoving boot2docker-vm,当我再次运行boot2docker 时得到以下信息:
$ /usr/local/bin/boot2docker init 
error in run: Failed to initialize machine "boot2docker-vm": exit status 2

然后:

$ /usr/local/bin/boot2docker up 
Waiting for VM and Docker daemon to start...
...............................................................…..

一直挂着。


另外

$ docker ps
FATA[0000] Couldn't read ca cert /Users/Me/.boot2docker/certs/boot2docker-vm/ca.pem: open /Users/Me/.boot2docker/certs/boot2docker-vm/ca.pem: no such file or directory

还有:

$ sudo docker ps
FATA[0000] Get http:///var/run/docker.sock/v1.16/containers/json: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?


按照以下 Sven 的建议,再次删除 boot2docker-vm 并以详细模式运行 init

    $ boot2docker -v init
Boot2Docker-cli version: v1.4.1
Git commit: 43241cb
2014/12/23 01:53:02 executing: VBoxManage showvminfo boot2docker-vm --machinereadable
2014/12/23 01:53:02 executing: VBoxManage showvminfo boot2docker-vm --machinereadable
2014/12/23 01:53:03 executing: VBoxManage list vms
2014/12/23 01:53:03 executing: VBoxManage createvm --name boot2docker-vm --register
Virtual machine 'boot2docker-vm' is created and registered.
UUID: eca00a0a-6d68-45f3-acd1-ccc4dd1bcec9
Settings file: '/Users/Me/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox'
2014/12/23 01:53:03 executing: VBoxManage showvminfo boot2docker-vm --machinereadable
2014/12/23 01:53:03 executing: VBoxManage setextradata boot2docker-vm VBoxInternal/CPUM/EnableHVP 1
2014/12/23 01:53:03 executing: VBoxManage modifyvm boot2docker-vm --firmware bios --bioslogofadein off --bioslogofadeout off --bioslogodisplaytime 0 --biosbootmenu disabled --natdnshostresolver1 off --natdnsproxy1 off --ostype Linux26_64 --cpus 8 --memory 2048 --vram 8 --acpi on --ioapic on --rtcuseutc on --cpuhotplug off --pae on --longmode on --synthcpu off --hpet on --hwvirtex on --triplefaultreset off --nestedpaging on --largepages on --vtxvpid on --vtxux off --accelerate3d off --uart1 0x3F8 4 --uartmode1 server /Users/AJB/.boot2docker/boot2docker-vm.sock --boot1 dvd
2014/12/23 01:53:03 executing: VBoxManage showvminfo boot2docker-vm --machinereadable
2014/12/23 01:53:03 executing: VBoxManage modifyvm boot2docker-vm --nic1 nat --nictype1 virtio --cableconnected1 on
2014/12/23 01:53:03 executing: VBoxManage controlvm boot2docker-vm natpf1 ssh,tcp,127.0.0.1,2022,,22
2014/12/23 01:53:03 executing: VBoxManage list hostonlyifs
2014/12/23 01:53:03 executing: VBoxManage list dhcpservers
2014/12/23 01:53:03 executing: VBoxManage hostonlyif create
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
2014/12/23 01:53:03 executing: VBoxManage hostonlyif ipconfig dyld: DYLD_ environment variables being ignored because main executable (/Applications/VirtualBox.app/Contents/MacOS/VBoxNetAdp --ip 192.168.59.3 --netmask 255.255.255.0
VBoxManage: error: The host network interface with the given name could not be found
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component Host, interface IHost, callee nsISupports
VBoxManage: error: Context: "FindHostNetworkInterfaceByName(name.raw(), hif.asOutParam())" at line 218 of file VBoxManageHostonly.cpp
VBoxManage: error: Could not find interface 'dyld: DYLD_ environment variables being ignored because main executable (/Applications/VirtualBox.app/Contents/MacOS/VBoxNetAdp'
error in run: Failed to initialize machine "boot2docker-vm": exit status 2


提前感谢您的帮助。

【问题讨论】:

  • 我会说 $ /usr/local/bin/boot2docker init error in run: Failed to initialize machine "boot2docker-vm": exit status 2 表明虚拟机 GUI 没有正确删除虚拟机。我会再次这样做,然后运行boot2docker -v init 以查看详细输出。这可能指向问题所在。
  • 真的不应该将 DOCKER 环境变量硬编码到您的 .bashrc 文件中 - 虚拟机的 IP 地址可以随时由 virtualbox 更改。相反,让它运行$(boot2docker shellinit)
  • 我应该运行哪个$(boot2docker shellinit)
  • 你的 ~/.bash_profile?
  • 我已经确定,通过使用 VBox GUI 更改 Host Port 设置,它将导致 boot2docker up -v 尝试连接新声明的端口,而不是旧的 2022。但是这应该设置到什么端口呢?

标签: boot2docker


【解决方案1】:

我在 OSX Yosemite 上遇到了同样的问题,必须执行以下操作:

1) 用 docker 清理东西

  • boot2docker delete - 警告:这会删除你所有的 docker 镜像。
  • 在 Virtualbox 中,转到 VirtualBox(菜单)=> 首选项 => 网络 => 仅主机网络
    • 删除仅主机网络,然后我重新添加它们
  • boot2docker init
  • boot2docker up

2) 非常重要,正如他们所说,您可能错过了处理环境变量的内容:

To connect the Docker client to the Docker daemon, please set:
    export DOCKER_HOST=tcp://192.168.59.103:2376
    export DOCKER_CERT_PATH=/Users/andi/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1

对您而言,第二个导出命令会因用户名而异 - 不是 andi,而是其他名称。只需复制粘贴,然后按 Enter 以应用此环境变量,然后运行例如 docker ps 以检查任一认为是否正常工作。

【讨论】:

    【解决方案2】:

    升级 Virtual Box 是关键,但我在升级到 4.3.26 之前这样做了:

    • 从 Virtual Box 中删除所有 -> 首选项 -> 网络 -> 仅限主机的网络
    • 移除 Virtual Box 中现有的 boot2docker-vm
    • 安装新版 Virtual Box
    • 运行 boot2docker 应用程序

    【讨论】:

    • 我在使用 VirtualBox 4.3.26 时遇到了同样的问题。删除boot2docker-vm 修复它。
    【解决方案3】:

    对于它的价值,我尝试了这个问题和this related question 中的所有解决方案,但在我卸载并重新安装VirtualBox 之前没有解决我的问题。这个过程将 VirtualBox 从 4.2.16 版本升级到 4.3.22(我之前的那个已经在系统上闲置了几个月)。

    然后boot2dockerdocker 在没有任何其他调整的情况下工作。

    【讨论】:

    • 只是全新安装的问题,还是与后来安装的较新版本有关?
    • 你是对的@andi,进程升级了VirtualBox
    • 如果你能说明罪魁祸首版本是什么,让其他人知道会很酷。
    • 完成!为了便于参考,我还编辑了另一个问题的答案(不确定这是否是好的做法)
    【解决方案4】:

    有类似的问题。是 cisco anyconnect vpn 客户端把我的一切都搞砸了。 我从互联网上发现,解决此问题的最简单方法是:

    boot2docker stop
    vboxmanage modifyvm "boot2docker-vm" --natpf1 "docker,tcp,127.0.0.1,2376,,2376"
    boot2docker up
    $(boot2docker shellinit)
    export DOCKER_HOST=tcp://127.0.0.1:2376
    

    从这一点开始,即使在重新启动 vpn 客户端后一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-26
      • 1970-01-01
      • 2014-12-12
      • 2019-02-14
      相关资源
      最近更新 更多