先看一下docker info的內容docker
# 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/metadatasegmentfault
看完docker info描述,分析了一下我須要改的值有三處,容器的空間、容器的磁盤格式(個人機器磁盤格式是XFS,不支持resize2fs動態擴容,因此乾脆也改了)、docker的空間。具體操做以下app
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容器、鏡像,須要提早備份。且不作這一步操做的話,即便修改了配置,重啓服務,也沒法生效。oop
或者改配置,把上述那堆參數加到/usr/lib/systemd/system/docker.service的ExecStart=中code
關於動態擴容的方法參考https://segmentfault.com/a/1190000002931564io