制作自定义镜像
1. 确定软件包
确定自己的环境都需要哪些命令,然后,从镜像文件或者yum源下载响应的安装包。
bash基本是必选的 (bash-5.1.8-10.oe2203sp2.aarch64.rpm)
vim也是有必要的 (vim-enhanced-9.0-15.oe2203sp2.aarch64.rpm)
ssh 看需要 (openssh-8.8p1-20.oe2203sp2.aarch64.rpm openssh-server-8.8p1-20.oe2203sp2.aarch64.rpm)
tar命令(tar-1.34-4.oe2203sp2.aarch64.rpm)
2. 下载软件包
略。
3. 创建一个根目录:openeuler_root
4. 创建一个临时目录用于存放解压的文件 tmp
5. 解压软件包到根目录
rpm2cpio a.rpm | cpio -idmv -D tmp
cp -r tmp/* openeuler_root/
6. 构建镜像
FROM scratch
ADD openeuler_root /
WORKDIR /
CMD ["/bin/bash"]
7. 生成镜像
docker build -t openeuler_test:latest .
8. 结果:
[root@192.168.136.45 docker]# docker build -t openeuler-base:latest .
Sending build context to Docker daemon 1.008GB
Step 1/4 : FROM scratch--->
Step 2/4 : ADD openeuler_root /---> 5b1a4d89817a
Step 3/4 : WORKDIR /---> Running in 4ef034410c0d
Removing intermediate container 4ef034410c0d---> f4af44b44e76
Step 4/4 : CMD ["/bin/bash"]---> Running in 22673188bfb8
Removing intermediate container 22673188bfb8---> d689d5476c35
Successfully built d689d5476c35
Successfully tagged openeuler-base:latest
9. 产看镜像
[root@192.168.136.45 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
openeuler-base latest d689d5476c35 About a minute ago 512MB
补充:
这里面要注意 /etc 目录和其他自己需要的目录要自己创建,还有一些重要的环境变量和配置要加上。