先看一下docker info的内容

# docker info
Containers: 6
 Running: 6
 Paused: 0
 Stopped: 0
Images: 2
Server Version: 1.11.0
Storage Driver: devicemapper
 Pool Name: docker-253:0-1611278273-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 21.47 GB  -- 容器和镜像能使用的最大值,默认是10G
 Backing Filesystem: ext4  -- 容器磁盘格式,默认是docker服务所在机器的磁盘格式
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 17.94 GB  -- docker使用的空间
 Data Space Total: 214.7 GB  -- docker最大可以使用的空间
 Data Space Available: 196.8 GB
 Metadata Space Used: 10.87 MB
 Metadata Space Total: 4.295 GB
 Metadata Space Available: 4.284 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata

看完docker info描述,分析了一下我需要改的值有三处,容器的空间、容器的磁盘格式(我的机器磁盘格式是XFS,不支持resize2fs动态扩容,所以干脆也改了)、docker的空间。具体操作如下

systemctl stop docker
rm -rf /var/lib/docker
docker daemon --storage-opt dm.basesize=20G --storage-opt dm.loopdatasize=200G --storage-opt dm.loopmetadatasize=4G --storage-opt dm.fs=ext4

需要强调的是rm -rf /var/lib/docker 会删掉所有docker容器、镜像,需要提前备份。且不做这一步操作的话,即使修改了配置,重启服务,也无法生效。

或者改配置,把上述那堆参数加到/usr/lib/systemd/system/docker.service的ExecStart=中

关于动态扩容的方法参考https://segmentfault.com/a/1190000002931564

转载于:https://my.oschina.net/u/2601623/blog/677287

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐