debootstrap
1.1、debootstrap简介
是什么 ?:a tool for installing a Debian GNU/Linux based system into a subdirectory of another, already installed system
开发语言:C
支持系统:GNU/LinuxFreeBSD
官方主页:https://wiki.debian.org/Debootstrap
1.2、通过包管理器安装debootstrap
操作系统包管理器安装命令
aptsudo apt-get install -y debootstrap
CentOSyumsudo yum install -y debootstrap
dnfsudo dnf install -y debootstrap
openSUSEzyppersudo zypper install -y debootstrap
Alpine Linuxapksudo apk add debootstrap

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm debootstrap
FreeBSDpkgngsudo pkg install -y debootstrap
1.3、debootstrap命令

debootstrap命令的使用格式如下:

debootstrap --help
debootstrap --version
debootstrap [option]... <versionCodeName> <targetPath> <repoURL>
1.3.1、--help

查看debootstrap的使用帮助。

1.3.2、--version

查看debootstrap的版本号。

1.3.3、--verbose

打印出更详细的内容,当使用wget下载包的时候。

1.3.4、--no-check-gpg

不对下载的包进行gpg签名检测。

1.3.5、--variant=minbase | buildd | fakechroot | scratchbox
minbase只安装必须的软件包和apt
buildd安装build-essential包和apt
fakechroot安装的软件都没有root权限
scratchbox用于scratchbox交叉编译环境
1.3.6、--arch=x86 | x86_64 | amd64

设置target的CPU架构。

不设置的话,就是当前机器的CPU架构。

1.3.7、--components=component1[,component2[,componentN]]

componentapt仓库中的概念。

示例:

debootstrap --components=main,restricted,universe,multiverse bionic boinic-root/ https://mirrors.tuna.tsinghua.edu.cn/ubuntu
1.3.8、--print-debs

打印出默认会安装的软件包的名称。

这个操作会从repoURL中下载元数据到targetPath中, 分析他们之间的依赖关系,最后会把targetPath删除掉。如果同时使用了--keep-debootstrap-dir就不会删除掉targetPath

示例:

debootstrap --arch=amd64 --print-debs bionic boinic-root/ https://mirrors.tuna.tsinghua.edu.cn/ubuntu
1.3.9、--include=pkg1[,pkg2[,pkgN]]

指定要安装的软件的包名称。

示例:

debootstrap --arch=amd64 --include=curl,vim bionic boinic-root/ https://mirrors.tuna.tsinghua.edu.cn/ubuntu
1.3.10、--exclude=pkg1[,pkg2[,pkgN]]

排除一些包,也就是指定的包不安装。

注意:可能会把某些必须的包排除掉,这样会导致出现错误。

示例:

debootstrap --arch=amd64 --exclude=curl,vim bionic boinic-root/ https://mirrors.tuna.tsinghua.edu.cn/ubuntu
1.4、综合示例 —— 制作自己的 Ubuntu 18.04 Docker Image

step1、在本地文件系统中创建Ubuntu18.04文件目录层次结构

sudo debootstrap \
    --variant=minbase \
    --components=main,restricted,universe,multiverse \
    bionic \
    bionic-root/ \
    https://mirrors.tuna.tsinghua.edu.cn/ubuntu

step2、查看bionic-root目录中的内容

step3、使用chrootbionic-root目录切换为根目录

step4、在bionic子系统里做一些操作

step5、将bionic-root目录中的内容打包成tar包, 以此包作为Docker镜像导入到Docker镜像列表

sudo tar c -C bionic-root . | sudo docker import - bionic

step6、以bionic镜像运行一个容器

docker run --tty --interactive --rm bionic /bin/bash