从零制作Docker镜像的脚本

介绍了一种用于简化Docker镜像构建过程的自动化脚本工具。通过递归分析指定工具及其依赖项,此脚本能够生成一个包含所需全部组件的打包文件,便于创建定制化的Docker镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

github地址:

开发一些方便使用的Docker工具

https://github.com/happyAnger6/DockerTools.git


脚本目的:

Docker使用过程中,有时候可以将许多重复工作用shell脚本来简化,如pipework.该库的作用也是如此。


工具介绍:

目录:pack_images:打包相关工具

  • 使用场景:

    如果我们想从空的镜像开始制作一个只包含需要工具的镜像,这时候可能需要分析需要哪些工具,并将这些工具的依懒一起打包进去。这时候手动分析依懒就很麻烦。这个脚本的作用就是自动将工具的依懒也分析并打包进去。

    如我们要打包一个/bin/bash,/bin/bash会依懒动态加器及一些相关库,这时我们只要在pack_files中写入/bin/bash,然后执行./tar_all_files.sh pack_files,脚本就会自动分析依懒,然后将需要创建的符号链接和动态库等打包成一个pack.tar包。然后我们就可以利用这个tar包创建镜像了。


  • 脚本说明:

log.sh:日志处理相关函数
tar_all_files.sh:将pack_files中的所有文件及依懒项递归打包成pack.tar
pack_files:要打包的工具,tar_all_files.sh会自动递归分析依懒项并打包.


使用步骤:

1.创建一个空镜像

tar cv --files-from /dev/null | docker import - empty


2.加入我们要打包进去的工具

# cat pack_files
/bin/bash
/bin/ls
/usr/bin/vim
/usr/bin/gdb

3.执行脚本打pack.tar

./tar_all_files.sh pack_files


4.编写Dockfile

# cat Dockerfile
FROM empty
ADD pack.tar /

5.生成镜像

docker build -t empty_test .


6.完成

# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
empty_test                    latest              0a336da3a6e2        19 minutes ago      21.06 MB


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

self-motivation

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值