从零制作Docker镜像的脚本
github地址:https://github.com/happyAnger6/DockerTools.git脚本目的:Docker使用过程中,有时候可以将许多重复工作用shell脚本来简化,如pipework.该库的作用也是如此。工具介绍:目录:pack_images:打包相关工具使用场景: 如果我们想从空的镜像开始制作一个只包含需要工具的镜
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
更多推荐
所有评论(0)