我们在适配特殊CPU架构的软件的时候,有时,需要构建基础镜像,标准架构dockerhub上一般都提供了官方的基础镜像;
有时我们需要个性化定制自己的基础镜像,这时也需要重新制作。这里介绍几个制作方法。
Moby
克隆docker工程
docker官方已经提供了制作base image的脚本,这里使用moby提供的脚本 – moby/contrib/
1 | git clone https://github.com/moby/moby |
确认 debootstrap 已安装
1 | root@node1:~# apt install debootstrap |
debian
mkimage.sh
1 | root@node1:~/peng/moby-master/contrib# ./mkimage.sh --help |
build the image
1 | root@node1:~/peng/moby-master/contrib# ./mkimage.sh -t liupeng0518/debian debootstrap --variant=minbase jessie |
Test
Verify that images is imported.
1 | $ docker images |
Run a test docker instance
1 | docker run -t -i --rm stafwag/debian_i386:stretch /bin/sh |
centos
1 | ./mkimage-yum.sh centos |
arch
*bootstrap
debootstrap – debian系制作工具
febootstrap – fedora系制作工作
这里演示debootstrap如何制作
debootsrap
1 | root@node1:~/peng# debootstrap --verbose --include=iputils-ping --arch amd64 bionic chroot-bionic http://ftp.ubuntu.com/ubuntu/ |
kylin arm64:
1 | root@node1:~/peng# debootstrap --verbose --no-check-gpg --arch arm64 4.0.2sp2-server-ft2000 juniper http://archive.kylinos.cn/kylin/KYLIN-ALL/ |
自定义镜像
执行结束后,我们可以自定义镜像内容
Update /etc/resolve.conf
1 | root@node1:~/peng/chroot-bionic# vi chroot-bionic/etc/resolv.conf |
Update /etc/apt/sources.list
1 | root@node1:~/peng/chroot-bionic# vi chroot-bionic/etc/apt/sources.list |
可以chroot 到系统目录执行 apt-get update
1 | # chroot $PWD/chroot-bionic |
and apt-get upgrade
1 | /# apt upgrade |
Import镜像
切换到镜像目录 import image.
1 | root@node1:~/peng/chroot-bionic# tar cpf - . | docker import - liupeng0518/bionic-debootstrap:v0.1 |
chroot手工制作
如果使用以上方式执行报错,又不想费劲解决,我们可以手工制作
建议在全新安装的minimal系统下制作
复制内容
1 |
|
创建必须目录
1 | root@Kylin:~/peng/juniper# mkdir proc tmp home boot media mnt opt srv sys |
挂在设备节点
1 |
|
chroot
1 | root@Kylin:~/peng/juniper# chroot . |
自定义镜像
这里我们可以自定义镜像内容,比如卸载不必要的安装包,减少镜像体积,修改dns、仓库内容等
import镜像
1 | tar cpf - . | docker import - liupeng0518/juniper:v0.1 |
参考:
https://superuser.com/questions/165116/mount-dev-proc-sys-in-a-chroot-environment
https://stafwag.github.io/blog/blog/2019/04/22/building-your-own-docker-images_part1/