安裝鏡像制作工具febootstrap
yum -y install febootstrap
使用febootstrap 制作CentOS5鏡像目錄
febootstrap -i bash \ -i wget -i yum -i iputils -i iproute -i man -i vim-minimal \ -i openssh-server -i openssh-clients -i cronie-anacron -i crontabs \ centos5 centos5-image http://mirrors.aliyun.com/centos/5/os/x86_64/
將鏡像導入到Docker
cd centos5-image && tar -c . | docker import - centos5-base
驗證鏡像
查看鏡像列表是否包含centos5-base
docker images
運行簡單的bash
docker run -t -i centos5-base2 /bin/bash
看起來已經搞好了,不過接下來發現了一個嚴重的問題。
centos5的鏡像執行rpm -qa
的時候報錯
bash-3.2# rpm -qa rpmdb: /var/lib/rpm/Packages: unsupported hash version: 9 error: cannot open Packages index using db3 - Invalid argument (22) error: cannot open Packages database in /var/lib/rpm
為什麼出出現rpmdb的報錯?
因為我們使用centos6的yum安裝包,導致鏡像裡的 /var/lib/rpm/Packages 文件的DB格式不能被老的centos5的rpm讀取
我們需要重建 /var/lib/rpm/Packages 文件,方法如下:
# Fix up RPM database rm /var/lib/rpm/* rpm --initdb rpm -i --justdb '/var/cache/yum/*/packages/*.rpm'
docker commit 容器id centos5-base-fixed
docker images rm centos5-base
最後補充一句,如果在CentOS5下用febootstrap 應該不能有這樣的問題。不過在CentOS5下 febootstrap 好像沒那麼好用