1. 程式人生 > >建立CentOS系統的Docker基礎映象

建立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