我在Windows 10上遇到了docker-machine的奇怪问题。我仍然找不到解决方案。
以前曾经工作过,但在Windows 10更新后,我开始收到错误“无法找到匹配的MAC地址...”。使用docker-machine的任何操作都会出现此错误。
我尝试用虚拟盒重新安装dockertools(使用不同的网络驱动程序)。试图安装最新版本的虚拟机。删除并重新创建docker虚拟机。删除所有vitrualbox仅限主机的网络。这一切都没有帮助。
以下是我用docker-machine -D create -d virtualbox default:
docker-machine env default:
docker-machine regenerate-certs:
有人能指出我正确的方向吗?什么会导致这样的问题?
谢谢!
我尝试过VonC建议的方法。
这是结果。
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重试了这个。我还有其他错误:
因为它显然试图在虚拟机上使用eth1接口,我已经检查了发生了什么(这一次我可以看到vms在虚拟盒界面中创建和工作)。 这是我在访客VM中看到的:
如您所见,eth1接口没有指定ip4地址。 它可能是问题的原因以及如何解决它?
答案 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
我会尝试:
C:\Windows\system32\drivers\
中的任何vbox *文件,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services
通过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地址......”
对我有什么帮助:
答案 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)
与你们中的一些人一样,但是有所改变
这一次对我有用。希望它能一次又一次地起作用:)
答案 8 :(得分:1)
我遇到了这个问题。我可以告诉您-删除并重新安装无济于事。这是我的步骤:
@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)
dmvbf.bat default 99 101
。它通过ssh更改机器内部的IP地址docker-machine restart default
docker-machine regenerate-certs default
。由于我们更改了IP地址,因此先前生成的证书不再有效。eval $(docker-machine env default)
。没有此步骤,我会得到不同的错误(退出状态255等)docker run hello-world
并享受。答案 9 :(得分:0)
我遇到了类似的问题,我只是通过在任务管理器中终止虚拟机进程并重新启动 Docker快速入门终端来使其工作。
我希望有一天这可能对某人有所帮助。