背景
docker容器的创建依赖于镜像,镜像的创建依赖于目录树,不同的linux发行版,有自己的目录树。本文主要介绍debian族发行版与fedora族发行版base image的创建。如果您想从零创建一个linux发行版base image,请参考LFS(linux from scratch)。
测试环境
- OS Version, RHEL7.2
- docker Version, 1.12.5
debian
debian类的操作系统包括debian、ubuntu,这一类操作系统的目录树都是用debootstrap
来生成的。其中de
取debian之意。
安装
可直接使用yum安装yum install debootstrap
。
使用
debian默认的mirror为https://deb.debian.org/debian/
debootstrap格式:debootstrap [OPTION...] <版本> <目录树存放位置目录> [<镜像(mirror)位置>]
eg: sudo debootstrap jessie my_jessie
fedora
fedora类的操作系统包括fedora、RHEL、CentOS,这一类操作系统的目录树都是用febootstrap
来生成的。其中fe
取fedora之意。
安装
febootstrap
并没有存在于RHEL7.2(或CentOS7.2)Repo中,目前可以直接安装6.8 repo中的febootstrap-3.21-4
。
febootstrap-3.21-4依赖包如下所示:
- fakechroot-2.9-24.5.el6_1.1.x86_64
- fakechroot-libs-2.9-24.5.el6_1.1.x86_64
- fakeroot-1.12.2-22.2.el6.x86_64
- fakeroot-libs-1.12.2-22.2.el6.x86_64
- febootstrap-supermin-helper-3.21-4.el6.x86_64
使用
febootstrap格式:febootstrap [OPTION...] <版本> <目录树存放位置目录> [镜像(mirror)位置]
eg: febootstrap -i bash 6.8 my_centos6.8 http://mirrors.163.com/centos/6.8/os/x86_64/
LFS
Todo…
镜像导入
Tar导入方式创建镜像
无论是debootstrap还是febootstrap生成的目录,其导入docker image的方法是一样的。
格式:tar -C <目录树目录> -c . | docker import - <docker image 名称>
eg: tar -C ./my_jessie -c . | docker import - my_jessie_base
空镜像创建
格式:tar cv --files-from /dev/null | docker import - <docker image 名称>
eg: tar cv --files-from /dev/null | docker import - empty_image