docker 镜像构建( 适用于arm, mips64, sw_64, 不使用dockerfile)

这是我在思否上的第一篇文章,搬运一下自己在春节时因病毒宅在家里时写的文章。

docker这个方便的工具可以快速的部署自己的应用,但是其中最基本的方式就是创建一个docker image,但是docker hub上并没有我们所需要的image,因此在某些情况下,可以自己创建一个minimal docker images;介绍一个基于REDHAT系列的制基于该平台的docker images,适用于其他cpu哦,比如mips,sw等

其实我们可以知道,docker images的实质是一个mini的rootfs,而我们通过下述方法制作出来的rootfs,仅仅是一个能用的images,不适用于我们生产或者开发啦!但是我们可以在这个基础上进行定制化开发,装我们需要的软件安装包


# Create a folder for our new root structure
# 创建根文件系统目录
$ export centos_root='/centos_image/rootfs'
$ mkdir -p ${centos_root}
# download and install the centos-release package, it contains our repository sources
# 下载centos-release,这里面包含了一个最小minimal rootfs最小的包
$ yum reinstall --downloadonly --downloaddir . centos-release
$ rpm --root ${centos_root} -ivh --nodeps centos-release*.rpm
# 安装包
$ yum -y --installroot=${centos_root} --setopt=tsflags='nodocs' --setopt=override_install_langs=en_US.utf8 install yum
# 将宿主机上的配置cp 到自己创建的根文件目录
$ cp /etc/resolv.conf ${centos_root}/etc
# mount the device tree, as its required by some programms
# 创建根文件目录里面所需要的系统安装包,不过不同平台的image 存在不同的差异,有些最小的安装包,差tar
$ mount -o bind /dev ${centos_root}/dev
$ chroot ${centos_root} /bin/bash <

接下来是介绍一种基于debian发行版上制作镜像的办法

$ apt install debootstrap -y
# 根据自己的平台arch 以及源的配置修改下面这条命令;
# x86_64 是amd64,aarch64 是arm64
# jessie 是对应的debian版本,可以通过查看系统配置源得知该系统的版本号;
$ debootstrap --arch=amd64 --no-check-gpg  jessie rootfs http://mirrors.ustc.edu.cn/debian

倘若出现如下错误:

E: No such script: /usr/share/debootstrap/scripts/eagle 则需要进入 debootstrap的脚本目录建立相关软链接即可;

$ cd /usr/share/debootstrap/scripts/
$ ln -sf sid eagle

本来想以uos为例子,但是考虑uos的仓库源目前仅供内部使用.

你可能感兴趣的:(docker)