1. 程式人生 > >Docker基礎映象的製作

Docker基礎映象的製作

目前大部分的文章討論的都是怎麼從docker hub或者openvz上下載基礎映象,然後新增自己的功能製作映象,包括涵蓋了大部分docker內容的。但是如果實在找不到想要的基礎映象,比如我想製作Fedora Core 2的基礎映象,可是找了好久都沒有找到,就需要自己從頭製作基礎映象。

製作需要在linux下,我的作業系統是centos6.5。

1.    安裝febootstrap

Febootstrap在EPEL庫裡,所以首先要把EPEL庫增加到yum源裡。

在/etc/yum.repo.d/下新建epel.repo,內容如下

[epel]

name=fedora-epel

baseurl=http://mirrors.aliyun.com/epel/6/i/i386/

enabled=1

gpgcheck=0

然後#yum install febootstrap

2.    系統版本的選擇

目前實際機器上用的系統是Fedora Core release3(Heidelberg)Kernel 2.6.9-34.EL on i586,編譯用的機器系統是Red Hat AS4 U3, gcc版本gcc version 3.4.520051201 (Red Hat 3.4.5-2)

現在我從網上找到了fedora core 3,但是發現核心版本是kernel2.6.9-1.667 gcc 版本是gcc version3.4.2 20041017 (Red Hat 3.4.2-6.fc3),而Red Hat AS4 U3沒有找到更新源。這就陷入了困境,如果採用fc3,與之前的編譯環境不符,可是又找不到Red Hat AS4 U3的源,最後找到了一篇文章(參考

https://wenku.baidu.com/view/a97f9bb2fd0a79563c1e72c0.html)知道了CentOS4.3等同於RedHat AS4 U3,既然這樣就直接用centos4.3來製作編譯環境吧。

附上找了好久找到的更新源

Centos4.3 http://vault.centos.org/4.3/os/i386/

Centos6.5 http://vault.centos.org/6.5/os/i386/

Fedora core3 http://archives.fedoraproject.org/pub/archive/fedora/linux/core/3/i386/os/

3.    製作映象檔案

利用febootstrap製作映象檔案,首先要找到更新源的地址。找了好久終於找到

製作命令

$febootstrap -i bash -i gcc-c++ -i openssh -i yum -i make centos4.3 centos4.3 http://vault.centos.org/4.3/os/i386/

其中-i後是要安裝的程式,centos4.3是映象標籤,後一個centos4.3是生成的目錄,後面是源地址。

執行完畢後會在當前目錄下生成centos4.3目錄

中間碰到錯誤UnicodeDecodeError: 'ascii' codeccan't decode byte 0xe8 in position

是yumrepo.py中報出的。

只要修改這個檔案,在import後增加

Import sys

  reload(sys)
    sys.setdefaultencoding('utf-8')

生成完centos4.3目錄後用

$cd centos4.3

$tar -czvf centos4.3.tar.gz *

(注意,一定要進入centos4.3目錄後用這個命令,不要把centos目錄也壓進壓縮包了。否則執行容器的時候會出現used "exec:\"bash\": executable file not found in $PATH": unknown.的錯誤。)

(由於我的作業系統是centos6.5,而docker是在window上安裝的dockertoolbox17,後來匯入檔案的時候出現了錯誤,發現是tar版本的問題,於是在centos6.5上只用tar -cvf打包,然後在docker虛擬機器上壓縮。)

 生成映象的壓縮檔案。

4.    在docker中匯入

$docker imager import centos4.3.tar.gz centos:4.3

可以將映象匯入。