Docker 缺省的文件系统是 Devicemapper 。那么怎么用到先进的 Btrfs 呢?

准备:

一、安装btrfs的套件:

yum install -y btrfs-progs  
mprobe btrfs  
echo modprobe btrfs >> /etc/rc.modules  
chmod +x /etc/rc.modules  

二、如果系统已经安装好,分区已经固定,那就需要用虚拟的方法做出 btrfs 分区。

mkdir /img  
dd if=/dev/zero of=/img/btrfs.img bs=1024 count=10000000  
mkfs.btrfs /img/btrfs.img  
mount -o loop /img/btrfs.img /var/lib/docker  

三、如果是分区未固定,那就用原生方法来做 btrfs 分区,这里假设 /dev/sdb 是可用空分区

echo -e "o\nn\np\n1\n\n\nw" |  fdisk -c /dev/sdb  
pvcreate /dev/sdb1  
vgcreate docker_btrfs /dev/sdb1  
lvcreate -l 100%FREE -n docker_btrfs01 docker_btrfs  
mkfs.btrfs /dev/docker_btrfs/docker_btrfs01  
echo "/dev/docker_btrfs/docker_btrfs01 /var/lib/docker btrfs defaults 0 0" >> /etc/fstab  
mount -a  

四、重新启动 Docker ,这时的 /var/lib/docker 目录下应该是空的

编辑 Docker 选项:

vi /etc/default/docker  
------
DOCKER_OPTS="-s btrfs"  
------

重启:

service docker restart  

验证一下:

docker info  

comments powered by Disqus