Windows 10

时间:2016-04-22 02:53:00

标签: docker docker-machine

我在Windows 10上遇到了docker-machine的奇怪问题。我仍然找不到解决方案。

以前曾经工作过,但在Windows 10更新后,我开始收到错误“无法找到匹配的MAC地址...”。使用docker-machine的任何操作都会出现此错误。

例如,使用docker-machine ls: enter image description here

我尝试用虚拟盒重新安装dockertools(使用不同的网络驱动程序)。试图安装最新版本的虚拟机。删除并重新创建docker虚拟机。删除所有vitrualbox仅限主机的网络。这一切都没有帮助。

以下是我用docker-machine -D create -d virtualbox default:

enter image description here

docker-machine env default:

enter image description here

docker-machine regenerate-certs:

enter image description here

有人能指出我正确的方向吗?什么会导致这样的问题?

谢谢!

我尝试过VonC建议的方法。

  1. 删除虚拟机并清理驱动程序和注册表的建议方式。
  2. 重启PC。
  3. 安装最新的virtualbox(版本5.0.18 r106667)
  4. 重启PC。
  5. 按照建议设置环境。
  6. 这是结果。

    C:\Users\Vadim>Desktop\env.bat
    

    C:\ Users \ Vadim> rem minimal path:

    C:\ Users \ Vadim>设置PATH = C:\ Windows \ system32; C:\ Windows; C:\ Windows \ System32 \ Wbem

    C:\ Users \ Vadim> rem将Git添加到PATH

    C:\ Users \ Vadim> rem set glatest = PortableGit-2.8.1-64-bit

    C:\ Users \ Vadim>设置PATH = C:\ Windows \ system32; C:\ Windows; C:\ Windows \ System32 \ Wbem; C:\ Program Files \ Git \ bin; C:\ Program Files \ Git \ usr \ bin; C:\ Program Files \ Git

    C:\ Users \ Vadim>设置TERM = msys

    C:\ Users \ Vadim>设置GIT_HOME = C:\ Program Files \ Git

    C:\ Users \ Vadim> rem将VirtualBox添加到PATH

    C:\ Users \ Vadim>设置PATH = C:\ Windows \ system32; C:\ Windows; C:\ Windows \ System32 \ Wbem; C:\ Program Files \ Git \ bin; C:\ Program Files \ Git \ usr \ bin; C:\ Program Files \ Git; C:\ Pr ogram Files \ Oracle \ VirtualBox

    C:\ Users \ Vadim> rem将docker-machine添加到PATH

    C:\ Users \ Vadim>设置PATH = C:\ Windows \ system32; C:\ Windows; C:\ Windows \ System32 \ Wbem; C:\ Program Files \ Git \ bin; C:\ Program Files \ Git \ usr \ bin; C:\ Program Files \ Git; C:\ Pr ogram Files \ Oracle \ VirtualBox; C:\ Program Files \ Docker Toolbox

    C:\ Users \ Vadim>设置路径 Path = C:\ Windows \ system32; C:\ Windows; C:\ Windows \ System32 \ Wbem; C:\ Program Files \ Gi t \ bin; C:\ Program Files \ Git \ usr \ bin; C:\ Program Files \ Git; C:\ Program Files \ Oracle \ VirtualBox; C:\ Program Files \ Docker Toolbox PATHEXT = .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC

    C:\ Users \ Vadim> docker-machine create -d virtualbox test 运行预创建检查...... 创造机器...... (测试)将C:\ Users \ Vadim.docker \ machine \ cache \ boot2docker.iso复制到C:\ Users \ Vadim.docker \机\磨床\测试\ boot2docker.iso ... (测试)创建VirtualBox VM ... (测试)创建SSH密钥...... (测试)启动VM ... (测试)检查网络是否需要重新创建... (测试)Windows可能会要求获得创建网络适配器的权限。 Sometim es,这样的确认窗口在任务栏中被最小化。 (测试)找到一个新的仅限主机的适配器:“VirtualBox Host-Only Ethernet Adapter#2”

    (测试)Windows可能会要求获得配置网络适配器的权限。一些 时间,这样的确认窗口在任务栏中最小化。 (测试)Windows可能会要求获得配置dhcp服务器的权限。某时 s,在任务栏中最小化这样的确认窗口。 (测试)等待IP ... 等待机器运行,这可能需要几分钟...... 检测创建实例的操作系统... 等待SSH可用... 检测供应商...... 使用boot2docker进行配置...... 将证书复制到本地计算机目录... 将证书复制到远程计算机...... 创建计算机时出错:运行配置时出错:找不到匹配的IP f 或MAC地址080027d6b14d

    我仍然收到有关IP和MAC的错误。

    进一步调查。 正如VonC所建议的那样,我用docker-machine 0.6.0重试了这个。我还有其他错误: enter image description here

    因为它显然试图在虚拟机上使用eth1接口,我已经检查了发生了什么(这一次我可以看到vms在虚拟盒界面中创建和工作)。 这是我在访客VM中看到的: enter image description here

    如您所见,eth1接口没有指定ip4地址。 它可能是问题的原因以及如何解决它?

10 个答案:

答案 0 :(得分:7)

打开虚拟框,删除docker vm。它再次开始快速启动。我在Windows上也有同样的问题。

答案 1 :(得分:5)

我有同样的问题。我解决了它:

1)删除" VirtualBox仅限主机的以太网适配器"使用VirtualBox Manager gui。 (偏好 - >网络 - >仅主机网络)实际上有2个;我删除了两个。

2)删除默认VM(再次使用VirtualBox Manager gui)

3)重新运行start.sh脚本

补充说明:我使用的是Windows 7和cygwin64。 start.sh脚本在查找vboxmanage的路径时遇到问题。在解决这些错误时,我多次运行start.sh脚本,这可能是VBox发现的奇怪状态。

答案 2 :(得分:4)

该错误消息来自" Determine host-only interface dynamically, stop assuming eth1"和PR 3112修复issue 3108

我会尝试:

  • 完全卸载VirtualBox,
  • 删除C:\Windows\system32\drivers\中的任何vbox *文件,
  • 删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services
  • 中的所有vbox *文件夹
  • 重新安装virtualbox 5.0.18及其Oracle VM VirtualBox扩展包
  • 仅使用CMD(没有bash以避免任何副作用)

通过senv.bat脚本设置PATH,其中包括(更改设置的路径):

rem minimal path:
set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem

rem add Git to PATH
set glatest=PortableGit-2.8.1-64-bit
set PATH=%PATH%;C:\Personal_Unsaved\prgs\git\%glatest%\bin;C:\Personal_Unsaved\prgs\git\%glatest%\usr\bin;C:\Personal_Unsaved\prgs\git\%glatest%
set TERM=msys
set GIT_HOME=C:\Personal_Unsaved\prgs\git\%glatest%

rem add VirtualBox to PATH
set "PATH=%PATH%;C:\Personal_Unsaved\prgs\vbox\latest"

rem add docker-machine to PATH
set PATH=%PATH%;C:\Personal_Unsaved\prgs\dm\latest

在新环境中,使用latest docker-machine 0.7.0,创建一台新机器:

docker-machine create -d virtualbox test
docker-mahcine ssh test

(使用来自docker-machine的ssh,而不是来自git bash的ssh)

Kevin Hooke以下in the comments(2016年7月)提及:

  

在下载并安装最新的Toolbox之后,我在Windows 7上的1.11.2上遇到了同样的错误。更新工具箱后才会启动错误。

     

即使在VirtualBox中删除默认VM后,重新创建时也会遇到相同的错误。

     

我在GitHub上面的答案中提到的票据中注意到它提到了VirtualBox 5.0.14,所以我刚刚更新到5.0.24。启动Quickstart提示,它重新创建了默认的vm,现在没有问题

答案 3 :(得分:3)

这适用于Windows:

我跑了这个命令 -

docker-machine rm default

然后,我重启了docker-machine终端并自动分配了IP。

答案 4 :(得分:2)

如果在重新启动时分配了不同的IP(来自先前运行),则docker-machine显示与VM的连接问题 对我有用的一种方法是以某种方式重新启动它,以便在重新启动时获得相同的IP。
例如。如果在创建时分配了192.168.99.102(seq 100,101,102中的第三个),则在此docker机器之前启动任意两个其他VM,以使此机器获得102.

我正在维护这些命令,这些命令在我最初的日子里运行码头工具时很方便参考:
Handy commands on docker-machine, docker and docker-compose for starters.

答案 5 :(得分:2)

有一天我醒来了,Docker没有提到“无法找到匹配的MAC地址......”

对我有什么帮助:

  • 卸载Docker Toolbox
  • 卸载VirtualBox
  • 删除文件夹C:\ Users \ user_name \ .docker
  • 删除文件夹C:\ Users \ user_name \ .VirtualBox
  • 再次安装Docker Toolbox

答案 6 :(得分:2)

我的回答对未来的读者有用,因为一旦我最近遇到这个问题,我首先发现了这个问题。

所有上述解决方案对我都不起作用, 我已从虚拟机中删除默认计算机,并通过

重新创建
docker-machine rm default
docker-machine create --driver virtualbox default

然后,我已通过 Aaron Knauf

将网络适配器移除为described above

最后,我已卸载 docker VirtualBox ,并删除配置文件 .docker .VirtualBox 用户的文件夹。

然后,在重新安装Docker Toolbox和VirtualBox之后,Docker运行良好

即使重新安装不是好习惯,也解决了我的问题。

答案 7 :(得分:1)

与你们中的一些人一样,但是有所改变

  1. 使用VirtualBox Manager GUI删除“仅VirtualBox主机的以太网适配器”。 (“首选项”->“网络”->“仅主机”网络)实际上有两个。我都删除了。
  2. 删除默认VM(再次使用VirtualBox Manager GUI)
  3. 在管理员模式下启动“ Docker QuickStart Terminal”
  4. 在终端启动时,在VirtualBox Manager GUI上创建一个新的“ VirtualBox仅主机以太网适配器”,并提供静态IP地址作为您以前的Docker设备,并在其上启用DHCP。

这一次对我有用。希望它能一次又一次地起作用:)

答案 8 :(得分:1)

我遇到了这个问题。我可以告诉您-删除并重新安装无济于事。这是我的步骤:

  1. 从github(当前为v18.09.3)下载并安装最新的docker-toolbox
  2. 下载并安装最新的virtualbox(当前为6.0.4-128413)
  3. 使用快捷方式启动docker-toolbox
  4. 获取错误“找不到与MAC地址匹配的IP ...”(机器正常启动,您可以从Virtualbox GUI登录,并且可以正常工作。但是Windows由于网络设置而看不到它)
  5. 请勿停止虚拟机
  6. 使用此内容创建dmvbf.bat文件

    @echo off
    setlocal enabledelayedexpansion
    set machine=%1
    if "%machine%" == "" (
        echo dmvbf expects a machine name
        exit /b 1
    )
    set ipx=%2
    if "%ipx%" == "" (
        echo dmvbf x missing ^(for 192.168.x.y^)
        exit /b 2
    )
    set ipy=%3
    if "%ipy%" == "" (
        echo dmvbf y missing ^(for 192.168.x.y^)
        exit /b 3
    )

    echo kill $(more /var/run/udhcpc.eth1.pid) | docker-machine ssh %machine% sudo tee /var/lib/boot2docker/bootsync.sh >NUL
    echo ifconfig eth1 192.168.%ipx%.%ipy% netmask 255.255.255.0 broadcast 192.168.%ipx%.255 up | docker-machine ssh %machine% sudo tee -a /var/lib/boot2docker/bootsync.sh >NUL
    echo route add default gw 192.168.99.22 | docker-machine ssh %machine% sudo tee -a /var/lib/boot2docker/bootsync.sh >NUL


    docker-machine ssh %machine% "sudo cat /var/run/udhcpc.eth1.pid | xargs sudo kill"

    docker-machine ssh %machine% "sudo ifconfig eth1 192.168.%ipx%.%ipy% netmask 255.255.255.0 broadcast 192.168.%ipx%.255 up"

(感谢VonC answer

  1. 在Windows CMD中执行dmvbf.bat default 99 101。它通过ssh更改机器内部的IP地址
  2. docker-machine restart default
  3. docker-machine regenerate-certs default。由于我们更改了IP地址,因此先前生成的证书不再有效。
  4. Windows CMD中的
  5. eval $(docker-machine env default)。没有此步骤,我会得到不同的错误(退出状态255等)
  6. 再次启动docker-toolbox,这次您可以使用IP 192.168.99.101很好地启动docker
  7. 执行docker run hello-world并享受。

答案 9 :(得分:0)

我遇到了类似的问题,我只是通过在任务管理器中终止虚拟机进程并重新启动 Docker快速入门终端来使其工作。

我希望有一天这可能对某人有所帮助。