较早的docker容器默认10G大小的磁盘,现在默认100G大小的磁盘;可能出于某种考虑觉得太小,或者觉得太大,那么如何调整呢?可以不重启docker daemon吗?可以不重启容器吗?如何直接调整镜像的磁盘大小使得以后申请的容器都更大(或更小)?
参考文章: https://jpetazzo.github.io/2014/01/29/docker-device-mapper-resize/
- 容器磁盘大小和镜像没有(多少)关系,和dockerd有关系
- 如果镜像大小为200G,100G的磁盘大小也不够用,要么dockerd带不动,要么修改dockerd的默认配置
- 1.9.1的Base Device Size是107G;容器磁盘大小和所有容器总大小相同(其实可以不同)
- 1.11.1的Base Device Size是10G
- 动态调整容器磁盘空间:
脚本:(该脚本不好使)
12345678910111213#!/bin/bashUsage(){echo $0 name size && exit 1}name=$1size=$2[[ ! $# -eq 2 ]] && Usagesize=${size%GB}dev=$(docker inspect -f '{{ .GraphDriver.Data.DeviceName }}' $name)dmsetup table $dev | sed "s/0 [0-9]* thin/0 $(($size*1024*1024*1024/512)) thin/" | dmsetup load $devdmsetup resume $devresize2fs /dev/mapper/$dev
1)如果容器未启动,则/dev/mapper/$dev 不存在
2)如果容器已启动,则/dev/mapper/$dev 显示设备繁忙
总之,该脚本不好使 - 容器的dm文件并不是总是存在的,随着弄起的启动而创建,随着容器的停止而消失:
注意: 磁盘文件的那一长串字符不同与容器ID - 根本的解决办法