从零制作Docker镜像的脚本

来源:互联网 发布:域名白名单 编辑:程序博客网 时间:2024/06/06 18:53

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 0
原创粉丝点击