1. 程式人生 > >從零製作Docker映象的指令碼

從零製作Docker映象的指令碼

github地址:

開發一些方便使用的Docker工具

指令碼目的:

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