Appearance
制作docker镜像
从ISO制作docker镜像
我们都知道,从hub.docker.com可以拉取到docker镜像,那么这些基础镜像是怎么来的呢?换个说法,ubuntu 16.04是怎么制作成docker镜像的呢?
- 准备条件
这次准备把 ubuntu-16.04.6-server-i386.iso 制作成docker镜像
- ubuntu-16.04.6-server-i386.iso下载地址 https://releases.ubuntu.com/16.04/
- 一台安装了docker的ubuntu机器
- 一台Mac(或者别的系统可以安装qemu)
- 制作qcow2镜像
首先在mac下执行安装qemu
bash
brew install qemu
创建10G的空间, 使用qcow2格式
bash
qemu-img create -f qcow2 ubuntu-16.04.qcow2 10G
启动虚拟机并挂载iso镜像,安装镜像
bash
qemu-system-i386 -cdrom ~/Downloads/ubuntu-16.04.6-server-i386.iso -boot d -m 1024 -hda ubuntu-16.04.qcow2
安装完成后关闭虚拟机,这样我们就得到了一个安装好的ubuntu.qcow2的镜像文件
- 从qcow2到docker image
接下来是在Ubuntu下操作命令, 使用root用户
安装 guestmount
bash
apt-get install libguestfs-tools
挂载 ubuntu-16.04.qcow2 到文件, 可以把文件从Mac下复制到ubuntu
bash
mkdir /mnt/ubuntu
guestmount -a ubuntu-16.04.qcow2 -i --rw /mnt/ubuntu
cd /mnt
tar -C ubuntu -c . | docker import - ubuntu-16.04
这样我们就得到了ubuntu-16.04:latest的镜像文件, 使用下面命令验证
bash
docker images
用vmware制作镜像
在上一步中我们已经安装了qemu, 这里直接使用qemu-img命令对vmdk文件进行处理, vmdk是vmware的镜像主文件
qemu-img convert -O qcow2 centos4.8.vmdk centos4.8.qcow2
这样就得到了centos4.8.qcow2文件,接下来就是挂载和转换操作和上面步骤一致