docker鏡像超過10G帶來的問題

項目一個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

相關文章
相關標籤/搜索