建立CentOS系統的Docker基礎映象
Step-1 解除安裝不必要的軟體包
為了縮小檔案系統的體積,需要刪除一些不必要的軟體包。在Shell中執行以下命令:
CentOS 6.9系統(虛擬機器-1):
yum remove -y iwl* ql* xorg* ipw* *firmware* --exclude=kernel-firmware
CentOS 7.4.1708系統(虛擬機器-2):
yum remove -y iwl* *firmware* --exclude=kernel-firmware
Step-2 清除yum快取
清除yum快取,進一步縮小檔案系統的體積。在Shell中執行以下命令:
yum clean all
yum clean allrm -rf /var/cache/yum
Step-3 打包檔案系統
將檔案系統打包,排除所有執行時才建立的目錄,以及不必要的目錄。在Shell中執行以下命令:
tar --numeric-owner --exclude=/proc --exclude=/sys --exclude=/mnt --exclude=/var/cache --exclude=/usr/share/{foomatic,backgrounds,perl5,fonts,cups,qt4,groff,kde4,icons,pixmaps,emacs,gnome-background-properties,sounds,gnome,games,desktop-directories} --exclude=/var/log -zcvf /mnt/CentOS-6.9-BaseImage.tar.gz /
tar --numeric-owner --exclude=/proc --exclude=/sys --exclude=/mnt --exclude=/var/cache --exclude=/usr/share/{foomatic,backgrounds,perl5,fonts,cups,qt4,groff,kde4,icons,pixmaps,emacs,gnome-background-properties,sounds,gnome,games,desktop-directories} --exclude=/var/log -zcvf /mnt/CentOS-7.4-BaseImage.tar.gz /
Step-4 安裝和啟動Docker
安裝CentOS的EPEL源和REMI源,然後安裝Docker軟體包,最後啟動Docker服務。在Shell中執行一下命令:
# 安裝EPEL源和REMI源rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-6.rpm# 安裝Docker軟體包yum install -y docker-io# 啟動Docker服務service docker start
# 安裝EPEL源和REMI源rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpmrpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm# 安裝Docker軟體包yum install -y docker-io# 啟動Docker服務systemctl start docker.service
Step-5 匯入映象倉庫
將打包的檔案系統,匯入Docker的本地映象倉庫。在Shell中執行以下命令:
cat /mnt/CentOS-6.9-BaseImage.tar.gz | docker import - centos-tar:6.9
cat /mnt/CentOS-7.4-BaseImage.tar.gz | docker import - centos-tar:7.4.1708
Step-6 驗證
檢查Docker的本地映象倉庫,若如下圖所示,則表明映象建立成功:
通過tar打包建立的CentOS 6.9基礎映象
通過tar打包建立的CentOS 7.4基礎映象
執行一個示例容器,在控制檯中輸出提示資訊,如下圖所示:
通過tar打包建立的CentOS 6.9基礎映象的執行示例
通過tar打包建立的CentOS 7.4基礎映象的執行示例
使用:
git clone https://github.com/jpetazzo/pipework
cp pipework/pipework /usr/local/bin/
chmod +x /usr/local/bin/pipework
vim /etc/sysconfig/network-scripts/ifcfg-em1
vim /etc/sysconfig/network-scripts/ifcfg-br0
systemctl restart network
docker images
docker run -it --name centos6.8 --net=none b7feffaa0bdc /bin/bash
docker ps -a
docker start fc017c4eb893
pipework br0 fc017c4eb893 192.168.10.48/[email protected]
docker exec fc017c4eb893 ip add
docker exec -it fc017c4eb893 /bin/bash
docker ps -a