• 【转载】docker 应用之动态扩展容器空间大小


    docker 容器默认的空间是 10G, 如果想指定默认容器的大小(在启动容器的时候指定),可以在 docker 配置文件里通过 dm.basesize 参数指定,比如

    docker -d --storage-opt dm.basesize=20G 是指定默认的大小为 20G

    动态扩展的优点:

    1、不需要修改 docker 配置,并且重启 docker 服务;

    2、可以直接对运行中的容器进行动态扩展(只能增,无法缩);

    缺点:

    1、docker 所在宿主机分区的格式必须是 ext2、ext3、ext4;

    2、docker 存储引擎必须是 devicemapper

    存储引擎查看,可以使用 docker info 查看

    使用:df -hT  查看系统的根分区是哪种格式分区

    dynamic_modify_docker_disk.sh 动态扩展容器脚本内容:

    #!/bin/bash
    #This script is dynamic modify docker container disk
    
    if [ -z $1 ] || [ -z $2 ]; then
        echo "Usage: container_name increase_capacity"
        echo "Example: I want increase 11G to test"
        echo "The command is:   sh `basename $0` test 11"
        exit 1
    fi
    if [ `docker inspect $1 &>>/dev/null &&  echo 0 || echo 1` -eq 1 ];then
        echo "The container $1 is no exist!"
        exit 1
    fi
    container_id=`docker inspect -f '{{ .Id }}' $1`
    now_disk=`dmsetup table /dev/mapper/docker-*-$container_id|awk '{print $2}'`
    disk=$(($2*1024*1024*1024/512))
    if [ $disk -lt $now_disk ];then
        echo "I can't shink container $1 from $(($now_disk*512/1024/1024/1024))G to ${2}G!I only modify contanier increase disk!"
        exit 1
    fi
    dmsetup table /dev/mapper/docker-*-$container_id|sed "s/0 [0-9]* thin/0 $disk thin/"|dmsetup load /dev/mapper/docker-*-$container_id
    dmsetup resume /dev/mapper/docker-*-$container_id
    resize2fs /dev/mapper/docker-*-$container_id
    if [ $? -eq 0 ];then
        echo "dynamic container $1 disk to ${2}G is success!"
    else
        echo "dynamic container $1 disk to ${2}G is fail!"
    fi
    sh dynamic_modify_docker_disk.sh

    使用方法直接执行脚本即可,有帮助说明

    FAQ:

    centos 7 里使用 docker 的时候默认存储引擎是 devicemapper

    在进行动态调整 docker 容器磁盘空间的时候,出现

    resize2fs 1.42.9 (28-Dec-2013)
    resize2fs: Device or resource busy while trying to open /dev/mapper/docker

    原因是 resize2fs 仅能支持 ext2、ext3、ext4,不支持 xfs

    所以建议 docker 服务器的文件系统格式调整为 ext4

    源站:http://dl528888.blog.51cto.com/2382721/1606170

  • 相关阅读:
    jquery的 $.Event()
    自动化构建种常用命令
    原生js实现addClass,removeClass,hasClass方法
    43.放苹果(递归练习)
    43.放苹果(递归练习)
    43.放苹果(递归练习)
    43.放苹果(递归练习)
    42.递归算法---数的划分
    42.递归算法---数的划分
    42.递归算法---数的划分
  • 原文地址:https://www.cnblogs.com/Mrhuangrui/p/6704656.html
Copyright © 2020-2023  润新知