使用boot2docker.iso来搭建一个超小的VM虚拟机环境
使用**boot2docker.iso**搭建超小VM有几个好处:
- 做出来的镜像非常小,大概只有不到100MB(相比之下ubuntu则有500MB辣么大),非常好进行分发
- 根文件系统某种意义上说是「只读」的,无论对根文件系统做了什么,重启就还原了
- 我们场景合适使用docker来提供服务,并放置这个VM内,打包给客户~
- 同时业务需要升级的话,只需要对镜像进行升级即可~ ;-)
前序工作
a. 镜像下载: https://github.com/boot2docker/boot2docker/releases
b. 创建虚拟机:
|
|
c. 导入镜像:
|
|
此时,我们可以在VBOX的界面上,看到一个magicvm
虚拟机了,接下来就可以对这个VM进行定制了。
1)网卡配置
默认有两张网卡,我们只使用其中一个 a, 把 Adapter 2设定为’Not Attached’,取消勾选 b. 把 Adapter 1设定为’Bridged Adapter’,选择需要桥接的网卡
2)共享目录
默认情况下会有一个共享目录,我们要去删除它
3)设定docker用户密码(临时)
sudo passwd docker
,输入新密码,为后续的SSH远程登录使用
4)远程登录
|
|
5)设定VM的hostname
假定现在需要设定为 magic
|
|
这个配置重启生效
6)设定静态IP地址
有一个配置文件/var/lib/boot2docker/profile
是在docker启动过程中/etc/init.d/docker
调用的
我们可以直接修改这个配置文件以达到修改静态IP地址的目的(或许也会其他更好的方式)
往/var/lib/boot2docker/profile
添加一段配置:
|
|
7)定制userdata.tar
由于系统目录是由boot2docker.iso
并且最终是一个tmpfs
文件系统,重启之后啥也没有了
我们刚刚修改的/var/lib/boot2docker
实际是一个软链接到已挂载的硬盘上:
|
|
开机启动过程中,会把/var/lib/boot2docker/userdata.tar
的文件内容解压至 /home/docker
,以实现SSH登录授权。
由于存在这个机制,我们也可以利用它,定制一下HOME目录,以实现快捷访问定制化的内容:
|
|
这样,下次启动的进入VM时,就可以通过 ls
目录看到HOME目录下有一个magic
目录的软链接了,以快捷访问此目录。
8)导出VM
导出VM不能直接使用VBOX的界面进行导出,否则会把iso文件给遗漏了,使用命令行可以解决这个问题:
|
|
OK, 这一个虚拟机VM到此为止就做好了。~