CentOS 7已经集成了Docker Engine, 并且提供了docker-storage-setup服务来帮助配置docker服务的devicemapper存储驱动,如果该驱动自动配置失败,则docker服务的存储驱动会降级为lvm-loop驱动。由于loop设备的缓存问题,lvm-loop模式不适合生产环境。
CentOS 7的安装程序默认使用lvm模式管理磁盘,如果仅有一块磁盘,安装程序会在该物理卷(pv)上创建centos卷组(vg), 并同时使用所有空间创建home和root逻辑卷(lv)。
服务docker-storage-setup默认会尝试使用root文件系统所属的vg, 即centos vg,但是由于该vg上已经没有剩余空间,从而导致devicemapper驱动配置失败。
CentOS 7默认安装程序创建的home lv空间一般比较大,先减小其大小:
lvresize -L -50G /dev/centos/home
重新创建并挂载home文件系统
umount /homemkfs.xfs /dev/centos/homemount /home
使用docker-storage-setup配置devicemapper驱动, 执行:
servicedockerstoprm -rf /var/lib/dockerservicedockerstart
停止docker服务,并清除已有的docker storage:
servicedockerstoprm -rf /var/lib/docker
编辑/etc/sysconfig/docker-storage-setup:
DEVS=/dev/sdbVG=docker
配置devicemapper驱动:
[root@localhost ~]# docker-storage-setupINFO: Volumegroupbackingrootfilesystemcouldnot bedeterminedINFO: Device /dev/sdbis alreadypartitionedand is partofvolumegroupdocker Roundingupsizeto fullphysicalextent 12.00 MiB Logicalvolume "docker-poolmeta" created. Logicalvolume "docker-pool" created. WARNING: Convertinglogicalvolumedocker/docker-pooland docker/docker-poolmetato pool's dataand metadatavolumes. THIS WILLDESTROYCONTENTOFLOGICALVOLUME (filesystemetc.) Converteddocker/docker-poolto thinpool. Logicalvolume "docker-pool" changed.
重启docker服务:
servicedockerstart
确认配置生效: a) vg信息:
[root@localhost ~]# vgdisplay --- Volumegroup --- VGName docker SystemID Format lvm2 MetadataAreas 1 MetadataSequenceNo 6 VGAccess read/write VGStatus resizable MAXLV 0 CurLV 1 OpenLV 0 MaxPV 0 CurPV 1 ActPV 1 VGSize 10.00 GiB PESize 4.00 MiB TotalPE 2559 AllocPE / Size 1028 / 4.02 GiB Free PE / Size 1531 / 5.98 GiB VGUUID v1eiA1-P7CS-pUx9-D0uS-eVwZ-41pA-SKdlef
b) docker info:
[root@localhost ~]# docker infoContainers: 0 Running: 0 Paused: 0 Stopped: 0Images: 0ServerVersion: 1.10.3StorageDriver: devicemapper PoolName: docker-docker--pool PoolBlocksize: 524.3 kB BaseDeviceSize: 10.74 GB BackingFilesystem: xfs Datafile: Metadatafile: DataSpaceUsed: 20.45 MB DataSpaceTotal: 4.287 GB DataSpaceAvailable: 4.266 GB MetadataSpaceUsed: 40.96 kB MetadataSpaceTotal: 12.58 MB MetadataSpaceAvailable: 12.54 MB UdevSyncSupported: true DeferredRemovalEnabled: true DeferredDeletionEnabled: true DeferredDeletedDeviceCount: 0 LibraryVersion: 1.02.107-RHEL7 (2016-06-09)ExecutionDriver: native-0.2LoggingDriver: json-filePlugins: Volume: local Network: bridgenull hostKernelVersion: 3.10.0-327.22.2.el7.x86_64OperatingSystem: CentOSLinux 7 (Core)OSType: linuxArchitecture: x86_64NumberofDockerHooks: 2CPUs: 2TotalMemory: 1.782 GiBName: localhost.localdomainID: AY7O:H2RJ:33J5:62FY:GHZE:AGFH:F42E:AH3J:WY7N:JXQK:LHBS:BDKYWARNING: bridge-nf-call-iptablesis disabledWARNING: bridge-nf-call-ip6tablesis disabledRegistries: docker.io (secure)
3) Docker Storage配置选项,查看/etc/sysconfig/docker-storage:
DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper --storage-opt dm.fs=xfs --storage-opt dm.thinpooldev=/dev/mapper/centos-docker--pool --storage-opt dm.use_deferred_removal=true --storage-opt dm.use_deferred_deletion=true "http://www.tuicool.com/articles/UFJFRzN
联系客服