频道栏目
首页 > 资讯 > 虚拟机 > 正文

【手工解决】使用DockerToolbox创建指定版本的Docker虚拟机环境

17-06-16        来源:[db:作者]  
收藏   我要投稿

怎样用DockerToolbox(Docker machine)创建旧版本的Docker虚拟机?

 

# 我用的电脑环境是Win7 64位操作系统,

#原来使用的 Docker 版本是1.13.1,现在是17.05.x-ce版本了

# 运行docker-machine 时会自动检查并下载最新的 boot2docker.iso 版本
# 而实际生产中,不可能总是使用最新的版本,
# 一般在一定的时期内,会使用固定的稳定版本.

# 比如用户想尝试使用 Rancher,因为Rancher只支持稳定的Docker版本,

# 所以只能安装以前的稳定版1.12.3+,在试用的过程中,用户遇到的问题会少很多。

# 那怎么办呢? 怎样用DockerToolbox Docker machine 创建旧版本的Docker虚拟机呢?

# Docker Machine提供了--virtualbox-boot2docker-url参数,

# 我们可以自己搭建网站,存放指定版本的Boot2docker.iso文件,供Docker machine下载使用。

 

# 但实际安装操作过程中,总是磕磕绊绊,遇到好多报错,对于初学者来说确实头疼,

# 现将整个过程中遇到的问题及解决办法整理如下:

 

# 大致步骤及遇到的主要问题:
# 1 使用WAMP工具包,快速创建一个内部网站,将所需版本的 boot2docker.iso 文件拷贝到网站目录中;
# 2 使用docker-machine 创建虚拟机时,要带上参数:--virtualbox-boot2docker-url

# 问题1 创建虚拟机报错?

# 问题2 启动虚拟机无响应?

# 问题3 新建虚拟机目录下的文件Boot2docker.iso大小为0(5KB)?

# 问题4 怎样正确挂载Boot2docker.iso 和disk.vmdk文件?

# 问题5 查看虚机状态时,显示的信息不对?

# 问题6 怎样重新生成秘钥?


# 安装 WAMP Server ,创建一个Web服务器,安装非常方便,直接下一步即可完成安装。

# 默认安装后,Web网站的目录为c:\wamp\www可以将所需要版本的 boot2docker.iso 文件

# 直接放到c:\wamp\www目录下,也可以放到二级目录下,引用时注意即可。

 

$docker-machine create \
-d virtualbox \
--virtualbox-boot2docker-url=http://192.168.0.103 \
docker1

# 执行创建 Docker 虚拟机的命令
# 最后面有报错信息(问题1)


catty@15FD201 MINGW64 ~
$ docker-machine create -d virtualbox -virtualbox-boot2docker-url=http://192.16
8.3.201 docker1
Running pre-create checks...
(docker1) Boot2Docker URL was explicitly set to "http://192.168.0.103" at create
time, so Docker Machine cannot upgrade this machine to the latest version.
Creating machine...
(docker1) Boot2Docker URL was explicitly set to "http://192.168.0.103" at create
time, so Docker Machine cannot upgrade this machine to the latest version.
(docker1) DownloadingC:\Users\catty\.docker\machine\cache\boot2docker.iso from
http://192.168.0.103...
(docker1)0%....10%....20%....30%....40%....50%....60%....70%....80%....90%....100%
(docker1) Creating VirtualBox VM...
(docker1) Creating SSH key...
Error creating machine: Error in driver during machine creation:C:\Program File
s\Oracle\VirtualBox\VBoxManage.exe storageattach docker1 --storagectl SATA --por
t 0 --device 0 --type dvddrive --medium C:\Users\catty\.docker\machine\machines\
docker1\boot2docker.isofailed:
VBoxManage.exe: error: Could not get the storage format of the medium'C:\Users\
catty\.docker\machine\machines\docker1\boot2docker.iso' (VERR_NOT_SUPPORTED)
VBoxManage.exe: error:Details: code VBOX_E_IPRT_ERROR (0x80bb0005), component M
ediumWrap, interface IMedium, callee IUnknown
VBoxManage.exe: error:Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDe
vType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 179 of
file VBoxManageDisk.cpp
VBoxManage.exe: error: Invalid UUID or filename "C:\Users\catty\.docker\machine\
machines\docker1\boot2docker.iso"


# 显示的虚拟机的状态
# 此时显示新建的虚拟机处于停止运行状态,

catty@15FD201 MINGW64 ~
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v1.13.1
docker1 - virtualbox Stopped Unknown


# 启动新建的 Docker 虚拟机
# 直接运行start命令,虚拟机无响应(问题2),



catty@15FD201 MINGW64 ~
$ docker-machine start docker1
Starting "docker1"...
(docker1) Check network to re-create if needed...
(docker1) Waiting for an IP...

# Windows 7界面中,VM VirtualBox 显示启动错误信息,

# 到目录中查看, boot2docker.iso 的文件大小为0,(问题3)
# 解决:这个问题3好解决,直接拷贝指定版本的 boot2docker.iso 覆盖0字节的同名文件。

 

# VM VirtualBox 图形化管理界面中,新创建的虚拟机的配置中没有磁盘和启动iso,(问题4)

# 解决:这个问题4也好办,可以手工添加,创建两个磁盘,光驱和可写的硬盘,

# 分别挂载到SATA 0 和 SATA1接口上。

# 手工配置光盘镜像 boot2docker.iso 在SATA0 上,
# 可写磁盘 disk.vmdk 在 SATA 1 上,再次启动:

catty@15FD201 MINGW64 ~

$ docker-machine start docker1
Starting "docker1"...
(docker1) Check network to re-create if needed...
(docker1) Waiting for an IP...
Machine "docker1" was started.
Waiting for SSH to be available...
Detecting the provisioner...
Started machines may have new IP addresses. You may need to re-run the `docker-m
achine env` command.

# 能够正常启动


# 由于是手动设置磁盘的,系统提示IP地址变化,执行ls时,显示虚拟机的信息不对,(问题5)

# 提示“不能查询Docker的版本”“未知的机关签署的证书”(问题5)。

catty@15FD201 MINGW64 ~
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v1.13.1
docker1 - virtualbox Running tcp://192.168.99.101:2376 Unknown Unable toquery docker version: Get https://192.168.99.101:2376/v1.15/version: x509: certificate signed by unknown authority


# 解决:问题5也好办,无法正确显示docker版本,需要重新生成密钥,

# 解决:问题6,重新生成秘钥 执行的命令是 docker-machine regenerate-certs


catty@15FD201 MINGW64 ~
$ docker-machine regenerate-certs docker1
Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
Waiting for SSH to be available...
Detecting the provisioner...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...


# 再次显示 Docker 虚拟机的状态

catty@15FD201 MINGW64 ~
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v17.05.0-ce
docker1 - virtualbox Running tcp://192.168.99.101:2376 v1.13.1

#一切正常,v17.05.0-ce版与v1.13.1版的虚拟机同时存在。

 

 

参考链接:

WAMP Server下载地址(官方):http://www.wampserver.com/en/

WAMP Server下载地址(网盘):http://pan.baidu.com/s/1qYPnnC4

WAMP Server下载地址(其他):http://dl.pconline.com.cn/download/52877-1.html

 

Docker Toolbox for Win7下载地址:(下载较快)

https://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

Boot2Docker.iso 下载地址:(网盘下载)

http://pan.baidu.com/s/1hrTqKcs

Docker Toolbox 官方下载地址:(下载较慢)

https://www.docker.com/products/docker-toolbox

Boot2Docker.iso 官方下载地址:(下载较慢)

https://github.com/boot2docker/boot2docker/releases

相关TAG标签
上一篇:MapReduce之求一组数据中最大值问题
下一篇:虚拟机中Ubuntu 14.04安装VMwareTools详解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站