項目一個tar包,很大,10多個g,這個docker鏡像導出的時候,會報:no space left on devinode
通常報這個錯的緣由有三個,1,分區自己不夠;2,碎片文件太多,分區夠,可是inode佔滿了;3,就是docker自己容器的限制。docker
首先看第一個問題,數據庫
[root@localhost home]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/centos-root 50G 27G 24G 54% / devtmpfs 911M 0 911M 0% /dev tmpfs 921M 0 921M 0% /dev/shm tmpfs 921M 90M 831M 10% /run tmpfs 921M 0 921M 0% /sys/fs/cgroup /dev/mapper/centos-home 148G 11G 137G 8% /home /dev/sda1 497M 124M 373M 25% /boot tmpfs 185M 0 185M 0% /run/user/1004 tmpfs 185M 0 185M 0% /run/user/992 tmpfs 185M 0 185M 0% /run/user/996 tmpfs 185M 0 185M 0% /run/user/0
根分區自己是夠的,centos
第二個問題:bash
[root@localhost home]# df -ih 文件系統 Inode 已用(I) 可用(I) 已用(I)% 掛載點 /dev/mapper/centos-root 50M 328K 50M 1% / devtmpfs 228K 348 228K 1% /dev tmpfs 231K 1 231K 1% /dev/shm tmpfs 231K 572 230K 1% /run tmpfs 231K 13 231K 1% /sys/fs/cgroup /dev/mapper/centos-home 148M 33 148M 1% /home /dev/sda1 500K 330 500K 1% /boot tmpfs 231K 1 231K 1% /run/user/1004 tmpfs 231K 1 231K 1% /run/user/992 tmpfs 231K 1 231K 1% /run/user/996 tmpfs 231K 1 231K 1% /run/user/0
inode的使用很低,自己也沒問題,最後查看docker的信息:app
[root@localhost home]# docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 1.12.6 Storage Driver: devicemapper Pool Name: docker-253:0-67125080-pool Pool Blocksize: 65.54 kB Base Device Size: 10.74 GB#這個就是限制,容器根分區的大小! Backing Filesystem: xfs Data file: /dev/loop0 Metadata file: /dev/loop1 Data Space Used: 11.8 MB Data Space Total: 107.4 GB Data Space Available: 36.95 GB Metadata Space Used: 581.6 kB Metadata Space Total: 2.147 GB Metadata Space Available: 2.147 GB Thin Pool Minimum Free Space: 10.74 GB Udev Sync Supported: true Deferred Removal Enabled: false Deferred Deletion Enabled: false Deferred Deleted Device Count: 0
docker的版本是1.12,修改容器根分區的大小便可:oop
dm.loopdatasize=100G是指存放數據的數據庫空間爲100g,默認是100g
dm.loopmetadatasize=10G是存放Metadata數據空間爲10g,默認是2g
dm.fs=xft是指容器磁盤分區爲xft
dm.basesize=20G是指容器根分區默認爲20g,默認是10gspa
vi /etc/sysconfig/docker-storage 修改下面參數便可 DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper --storage-opt dm.loopdatasize=100G --storage-opt dm.loopmetadatasize=10G --storage-opt dm.fs=xfs --storage-opt dm.basesize=20G"
最後重啓容器,問題解決code