重要更新:目前kernel在3.10.0-514以上自動支持overlay2存儲驅動了,感謝紅帽子和docker作出的不懈努力,本文寫做時間較早,因此針對目前環境已經不在適用,謝謝!!linux
1、先決條件docker
1.CentOS7發行版默認的Kernel版本是3.10,可是Overlay2存儲驅動須要4.0以上的kernel版本支持,因此必須手動升級Kernel版本至4.X。json
2.CentOS7默認使用的文件系統是xfs,但xfs類型的文件系統參數d_type默認爲false,須要從新格式化文件系統配置此參數。vim
3. Docker版本要求,我使用的是docker-ce-17.12,具體的兼容信息請看官網列表。centos
2、升級CentOS7 Kernel版本至4.Xapp
1. 啓用ELRepo倉庫ide
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
2. 安裝最新的4.X內核spa
# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available # yum --enablerepo=elrepo-kernel install kernel-ml
3. 設置grub2get
a.查看系統上的全部可用內核 # sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg b.設置4.x kernel爲默認啓動,「0」爲上面AWK命令的結果 # grub2-set-default 0 c.生成grub配置文件並重啓 # grub2-mkconfig -o /boot/grub2/grub.cfg # reboot
3、建立XFS文件系統it
# fdisk /dev/sdb # pvcreate /dev/sdb1 # vgextend centos /dev/sdb1 # lvcreate -L 5G -n lv_docker centos # mkfs.xfs -n ftype=1 /dev/mapper/centos-lv_docker # mkdir /usr/lib/docker # mount /dev/mapper/centos-lv_docker /usr/lib/docker
4、安裝Docker-CE
# yum install -y container-selinux libtool-ltdl libseccomp yum-plugin-ovl yum-utils device-mapper-persistent-data lvm2 # wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm # rpm -ivh docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm
5、配置Docker overlay2存儲驅動並啓動
# vim /etc/docker/daemon.json { "storage-driver": "overlay2", "storage-opts": ["overlay2.override_kernel_check=true"] } # systemctl daemon-reload # systemctl start docker # docker info