docker鏡像大於10G無法導入,修改鏡像保存位置


一,修改鏡像位置




vi      /lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -g /data/docker/ -H fd://

#添加  -g    /data/docker   選項,停止docker修改,重啟后之前的數據丟失
也可對/var/lib/docker  做軟連接,數據同樣會丟失


##還有一種據說這樣
ExecStart=/usr/bin/dockerd --graph=/data/docker --storage-driver=overlay --registry-mirror=https://jxus37ad.mirror.aliyuncs.com




###摘自別人
systemctl stop docker
創建新的docker目錄
mkdir -p /home/modules/docker/lib

遷移/var/lib/docker目錄下面的文件到/home/modules/docker/lib,遷移后的完成docker路徑:/home/modules/docker/lib/docker
rsync -avz /var/lib/docker/ /home/modules/docker/lib/

配置 /etc/systemd/system/docker.service.d/devicemapper.conf
查看/etc/systemd/system/docker.service.d目錄及devicemapper.conf是否存在。如果不存在,就新建
mkdir -p /etc/systemd/system/docker.service.d/
vi /etc/systemd/system/docker.service.d/devicemapper.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd  --graph=/home/modules/docker/lib/docker


#注意,直接修改systemctl docker  的啟動文件就行了


systemctl daemon-reload
systemctl restart docker
systemctl enable docker

查看是否生效

docker  info |  grep  -i   root


啟動成功后,再確認之前的鏡像是否還在

docker images  

二,docker 鏡像大於10G導致導入失敗

報錯
4d44c9e9ac1c: Loading layer [==================================================>]  2.893GB/2.893GB
ApplyLayer exit status 1 stdout:  stderr: write /root/anaconda3/lib/libcaffe.so.1.0.0: no space left on device

##原因是導入時元數據緩沖區最大為10G,需要擴大,其實不是/var/lib/docker所在目錄的空間不足。

處理:
設置啟動參數

停止docker  
修改
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd-current \
          --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
          --default-runtime=docker-runc \
          --exec-opt native.cgroupdriver=systemd \
          --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
          --storage-opt dm.loopdatasize=8G \   
          --storage-opt dm.loopmetadatasize=4G \
          --storage-opt dm.basesize=8G \
 
重點在后三條
systemctl daemon-reload 
systemctl start docker 
docker info


dm.loopdatasize=2000G是指存放數據的數據庫空間為2t,默認是100g
dm.loopmetadatasize=10G是存放Metadata數據空間為10g,默認是2g
dm.fs=ext4是指容器磁盤分區為ext4
dm.basesize=20G是指容器根分區默認為20g,默認是10g


參考:
http://ifindever.com/archives/516.html
https://github.com/moby/moby/issues/21171
https://testerhome.com/topics/6184/show_wechat



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM