Docker 启动失败问题处理
时间:2016-05-17 16:30 来源:linux.it.net.cn 作者:IT
Q1 参加了一场 Docker 技术分享后,发现了 Docker 这个好东西,回头动手安装,打算跑起来体验一番,却遇到了一些蛋疼的问题。
如何安装 Docker
Windows 如何安装 Docker?参考 官网安装教程 。
由于 Docker 引擎使用了 Linux 特有的内核特性,因此在 Windows 中运行 Docker 需要使用一个轻量级的虚拟机。方便起见,Docker 团队设计了一个名为“Boot2Docker”的辅助程序用于安装所需的虚拟机并用于运行 Docker 进程。
此外,由于 Docker 对镜像(Image)的增删改查操作都是通过 Git ,因此在 Windows 下,还需要一个 MSYS-git 客户端。
因此,Boot2Docker 内置:
-
Boot2Docker
-
Boot2Docker Management Tool
-
VirtualBox
-
MSYS-git
需要注意,如果之前本地已经安装过 Git / GitHub for Windows 、VirtualBox ,则无需再安装内置的 MSYS-git、 VirtualBox 。
VirtualBox 导致的启动失败问题
初始化(docker init)失败问题处理
安装成功后,使用 Git Shell 运行启动脚本,结果却报错:
1
2
3
4
$ start.sh
copying initial boot2docker.iso (run "boot2docker.exe download" to update)
initializing...
error in run: Failed to initialize machine "boot2docker-vm": exit status 1
通过阅读 start.sh 脚本,发现卡在了 docker init 初始化这个步骤:
1
2
echo 'initializing...'
./boot2docker.exe init
这时候,通过错误日志或控制台输出排查错误就很关键了,-v 参数可以用于显示详细的命令调用过程:
1
-v, --verbose=false: display verbose command invocations.
1
2
3
4
5
6
7
8
9
10
$ boot2docker.exe init -v
Boot2Docker-cli version: v1.4.1
Git commit: 43241cb
2015/04/03 11:57:06 executing: E:\Developer\Oracle\VirtualBox\VBoxManage.exe showvminfo boot2docker-vm --machinereadable
2015/04/03 11:57:06 executing: E:\Developer\Oracle\VirtualBox\VBoxManage.exe showvminfo boot2docker-vm --machinereadable
2015/04/03 11:57:06 executing: E:\Developer\Oracle\VirtualBox\VBoxManage.exe list vms
VBoxManage.exe: error: Failed to create the VirtualBox object!
VBoxManage.exe: error: Code E_INVALIDARG (0x80070057) - One or more arguments are invalid (extended info not available)
VBoxManage.exe: error: Most likely, the VirtualBox COM server is not running or failed to start.
error in run: Failed to initialize machine "boot2docker-vm": exit status 1
通过控制台输出发现,VirtualBox 下的 VBoxManage.exe 运行出错了。
当时很疑惑,本地使用的是 Docker 内置 VirtualBox ,打开 VirtualBox.exe,同样会报错。
翻了下 VirtualBox 日志文件,Google 了一番输出错误,貌似跟什么 Windows 破解主题的 DLL 文件有关,折腾了一番没能解决。
再次搜索,最后发现了两个问题:
-
程序兼容性问题导致 VirtualBox 无法打开;
-
VirtualBox 版本问题导致虚拟机无法启动;
第一个问题,通过对 VBoxManage.exe、VBoxManage.exe 右键 - 勾选“以兼容模式运行这个程序”,至少保证打开程序不会报错。
1
2
$ Oracle/VirtualBox/VBoxManage.exe list vms
"centos" {440faef3-b83d-4daa-b7ce-3942c03dc580}
第二个问题,通过多个版本的安装/卸载尝试,最后发现在我的电脑使用 VirtualBox 4.3.10 能够正常启动虚拟机。
启动(docker start)失败问题处理
Docker 成功初始化后,还遇到一个虚拟化失败导致的 VirtualBox 无法启动的问题,报错如下:
1
2
3
......
VMSetError: VT-x is disabled in the BIOS.
......
打开 BIOS 的 Virtualization Technology (VTx/VTd) 开关,即可解决问题。
最后
再次运行 Docker 启动脚本,Docker 终于启动起来了!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
connecting...
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
(责任编辑:IT)
Q1 参加了一场 Docker 技术分享后,发现了 Docker 这个好东西,回头动手安装,打算跑起来体验一番,却遇到了一些蛋疼的问题。 如何安装 DockerWindows 如何安装 Docker?参考 官网安装教程 。 由于 Docker 引擎使用了 Linux 特有的内核特性,因此在 Windows 中运行 Docker 需要使用一个轻量级的虚拟机。方便起见,Docker 团队设计了一个名为“Boot2Docker”的辅助程序用于安装所需的虚拟机并用于运行 Docker 进程。 此外,由于 Docker 对镜像(Image)的增删改查操作都是通过 Git ,因此在 Windows 下,还需要一个 MSYS-git 客户端。 因此,Boot2Docker 内置:
需要注意,如果之前本地已经安装过 Git / GitHub for Windows 、VirtualBox ,则无需再安装内置的 MSYS-git、 VirtualBox 。 VirtualBox 导致的启动失败问题初始化(docker init)失败问题处理安装成功后,使用 Git Shell 运行启动脚本,结果却报错:
通过阅读 start.sh 脚本,发现卡在了 docker init 初始化这个步骤:
这时候,通过错误日志或控制台输出排查错误就很关键了,-v 参数可以用于显示详细的命令调用过程:
通过控制台输出发现,VirtualBox 下的 VBoxManage.exe 运行出错了。 当时很疑惑,本地使用的是 Docker 内置 VirtualBox ,打开 VirtualBox.exe,同样会报错。 翻了下 VirtualBox 日志文件,Google 了一番输出错误,貌似跟什么 Windows 破解主题的 DLL 文件有关,折腾了一番没能解决。 再次搜索,最后发现了两个问题:
第一个问题,通过对 VBoxManage.exe、VBoxManage.exe 右键 - 勾选“以兼容模式运行这个程序”,至少保证打开程序不会报错。
第二个问题,通过多个版本的安装/卸载尝试,最后发现在我的电脑使用 VirtualBox 4.3.10 能够正常启动虚拟机。 启动(docker start)失败问题处理Docker 成功初始化后,还遇到一个虚拟化失败导致的 VirtualBox 无法启动的问题,报错如下:
打开 BIOS 的 Virtualization Technology (VTx/VTd) 开关,即可解决问题。 最后再次运行 Docker 启动脚本,Docker 终于启动起来了!
(责任编辑:IT) |