Centos7 为Docker配置overlay存储驱动

前提:

RHEL或CentOS 使用新的docker存储驱动(overlay or overlay2),需要升级系统内核版本到3.10.0-514以上版本。梳理步骤如下:

确认内核

3.10.0-514以上版本

uname -r
3.10.0-514.++++.x86_64

系统升级

sudo yum upgrade --assumeyes --tolerant
sudo yum update --assumeyes        

确认内核是否加载 overlay模块

lsmod | grep overlay      

如果返回为空,需要配置模块加载

启用overlay

sudo tee /etc/modules-load.d/overlay.conf <<-‘EOF‘
overlay
EOF

重启系统

reboot

确认 overlay启用

lsmod | grep overlay
overlay

准备Docker存储分区

强烈建议另外准备一块磁盘或者分区,加参数 -n ftype=1 格式化为 xfs 格式,然后将 /var/lib/docker 挂载上去:

原因解释

XFS文件系统格式化时必须加 -n ftype=1
参数:-n 不真正创建文件系统,只是显示创建的信息;
ftype = value 允许inode类型存储在目录结构中,以便readdir,getdents不需要查找inode就可知道inode类型。默认为0,不存在目录结构中。

格式化本地磁盘

注意确认,格式化本地磁盘是否正确;

mkfs.xfs -f -n ftype=1 /dev/sdg5

确认磁盘信息

lsblk -a -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINT

├─sdg4
├─sdg5 xfs          71165973-9e3f-4d8e-9a4e-2c00c0e70efa     

配置磁盘开机挂载

more /etc/fstab         

UUID=71165973-9e3f-4d8e-9a4e-2c00c0e70efa /var/lib/docker                 xfs     defaults        0 0     

手动挂载磁盘

mount -a

查看磁盘挂载信息

lsblk   

├─sdg5   8:101  0  200G  0 part /var/lib/docker

修改docker启动文件,设置使用overlay 存储

more /etc/sysconfig/docker

# /etc/sysconfig/docker

# Modify these options if you want to change the way the docker daemon runs
OPTIONS=‘--storage-driver=overlay --selinux-enabled --log-driver=journald --signature-verification=false‘
if [ -z "${DOCKER_CERT_PATH}" ]; then
    DOCKER_CERT_PATH=/etc/docker
fi

或者

/etc/docker/daemon.json
{
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}

添加开机启动

systemctl daemon-reload
systemctl start docker
systemctl enable docker

验证docker 存储相关信息

$ docker info

Containers: 0
Images: 0
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: true        <<===重点确认
 Native Overlay Diff: true
<output truncated>

如果在不支持 d_typ 的 overlay/overlay 驱动下使用docker,也就意味着 docker 在操作文件的时候,可能会遇到一些错误,比如 无法删除某些目录或文件,设置文件或目录的权限或用户失败等等。这些都是不可预料的错误。举个具体的场景,就是,docker构建的时候,可能在构建过程中,删除文件等操作失败,导致构建停止。

原文地址:https://blog.51cto.com/michaelkang/2399880

时间: 2024-07-30 00:00:15

Centos7 为Docker配置overlay存储驱动的相关文章

docker配置overlay存储

1.查看overlay模块是否安装 lsmod | grep over 2.将OverlayFS加到module目录下 echo "overlay" > /etc/modules-load.d/overlay.conf 3.或者使用modprobe命令加载模块 #modprobe overlay 4.修改docker服务配置vim /lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd --graph=/mnt/d

Docker五种存储驱动原理及应用场景和性能测试对比

Docker最开始采用AUFS作为文件系统,也得益于AUFS分层的概念,实现了多个Container可以共享同一个image.但由于AUFS未并入Linux内核,且只支持Ubuntu,考虑到兼容性问题,在Docker 0.7版本中引入了存储驱动, 目前,Docker支持AUFS.Btrfs.Device mapper.OverlayFS.ZFS五种存储驱动.就如Docker官网上说的,没有单一的驱动适合所有的应用场景,要根据不同的场景选择合适的存储驱动,才能有效的提高Docker的性能.如何选择

Docker存储驱动之OverlayFS简介

简介 OverlayFS是一种和AUFS很类似的文件系统,与AUFS相比,OverlayFS有以下特性: 1) 更简单地设计: 2) 从3.18开始,就进入了Linux内核主线: 3) 可能更快一些. 因此,OverlayFS在Docker社区关注度提高很快,被很多人认为是AUFS的继承者.就像宣称的一样,OverlayFS还很年轻.所以,在生成环境使用它时,还是需要更加当心. Docker的overlay存储驱动利用了很多OverlayFS特性来构建和管理镜像与容器的磁盘结构. 自从Docke

Docker存储驱动devicemapper介绍和配置

devicemapper介绍 Device Mapper是Linux系统中基于内核的高级卷管理技术框架.Docker的devicemapper存储驱动就是基于该框架的精简置备和快照功能来实现镜像和容器的管理. 注:Device Mapper是Linux的一种技术框架,而devicemapper是Docker Engine基于Device Mapper提供的一种存储驱动. 早期的Docker运行在Ubuntu和Debian Linux上并使用AUFS作为后端存储.Docker流行之后,越来越多的的

docker 配置Btrfs和Device mapper存储驱动设置

运行环境: docker -v Docker version 1.12.1, build 23cf638 uname -a Linux ceph-6-29 3.10.0-327.28.3.el7.x86_64 #1 SMP Thu Aug 18 19:05:49 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux\ 一:docker 首次安装完成,默认存储设备为loop 回环设备,会创建一个100G的用于存储数据,和一个2G的用于存储元数据的稀疏文件,然后分别附加到回

Docker存储驱动之Device Mapper简介

Device Mapper是一个基于kernel的框架,它增强了很多Linux上的高级卷管理技术.Docker的devicemapper驱动在镜像和容器管理上,利用了该框架的超配和快照功能.为了区别,本文使用Device Mapper指驱动中的框架,而devicemapper指Docker的存储驱动. 注意:商业支持的Docker Engine(CS-Engine)建议在RHEL和CentOS上使用devicemapper存储驱动. AUFS之外的另一种选择 Docker最初运行在Ubuntu和

Docker存储驱动之ZFS简介

ZFS是下一代的文件系统,支持了很多存储高级特性,如卷管理.快照.和校验.压缩和重复删除技术.拷贝等. ZFS由Sun公司创建,现属于Oracle,ZFS是开源的,并基于CDDL license.因为CDDL和GPL不兼容,ZFS不能加入Linux kernel主线.然而,ZFS On Linux(ZoL)项目提供kernel模块和用户空间程序,这些都可以单独的安装. ZFS on Linux(ZoL)是一项成熟的技术,但是,现在却不建议在产品中使用zfs存储驱动,当然,除非你对ZoL有着丰富的

Docker存储驱动之Btrfs简介

简介 Btrfs是下一代的copy-on-write文件系统,它支持很多高级特性,使其更加适合Docker.Btrfs合并在内核主线中,并且它的on-disk-format也逐渐稳定了.不过,它的很多特性还仍然处于开发中. Docker的btrfs存储驱动利用了很多Btrfs特性来管理镜像和容器.这些特性中最重要的就是thin provisioning(超配).copy-on-write和快照. Btrfs特性 Btrfs一直被认为是Linux文件系统的未来.在Linux内核主线的全力支持下,稳

centos7 搭建docker内运行单实例rabbitmq的教程

1.安装centos7.x,配置好网络2.因为docker需要比较高版本的内核,比如使用overlayfs作为默认docker文件系统要3.18,所以先升级内核到3.18以上版本,能直接过4是最佳了检查内核uname -r 不够3.18.x的话 升级内核导入key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgrpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elr