1、下载busybox解压
2、make defconfig 配置busybox
3、make 编译busybox
这里有坑:busybox最后链接阶段报无法链接-lcrypt -lm 最后发现是因为没有安装glibc静态库导致
yum install glibc-static 可安装glibc静态库
4、创建rootfs
众所周知rootfs看起来必须有bin,proc,dev,root和boot等目录有两种方法可以创建一个rootfs
创建工作目录:
mkdir -p /root/zxy-docker
此工作目录就是docker镜像的根目录
4.1 方法一手动创建目录
进入工作目录:
cd /root/zxy-docker
在此目录下依次创建如下目录:
mkdir usr
mkdir usr/lib use/local usr/lib64 usr/bin usr/sbin usr/include
Mkdir var/ var/lib var/run var/local var/log
Mkdir tmp
Mkdir boot
4.2 方法二 使用别人创好的目录
进入工作目录:
Cd /root/zxy-docker
利用别人提供的template包,拷贝到工作目录下,解压后生成上述目录
5、安装busybox
在完成编译busybox以后是需要将busybox编译出来的elf文件拷贝到工作目录下,并在
相应的目录下创建软链接,这个动作我们交给busybox包的安装过程来完成。
在busybox的源码目录下:
make CONFIG_PREFIX=/root/docker-zxy install
检查docker-zxy/usr/bin 下有无sh,busybox和常用命令(ls,cd,mkdir等)。
运行一下busybox
/root/docker-zxy/usr/bin/busybox
至此busybox编译全部完成
6、创建docker镜像
6.1 创建dockerfile
在工作目录下创建dockerfile
vim dockerfile
写入下述内容
FROM scratch
MAINTAINER zxy
ADD ./ /
RUN rm /dockerfile
6.2 build dockerfile
docker build /root/docker-zxy -t zxy-docker-image
创建完成以后通过docker image命令可以看到上述创建的docker image
docker images
7 运行docker
docker run --name zxy -d zxy-dockerimage /bin/sh -c "while true; do echo hello world;sleep 1;done"
Docker ps |grep zxy #可以看到此docker
docker attach zxy #attach到这个docker上查看运行情况