Arch-Linux

docker - 註冊層失敗:處理 tar 文件時出錯(退出狀態 1)設備上沒有剩餘空間

  • February 17, 2022

我在Manjaro

我不斷得到:

failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libvlccore.so.9.0.0: no space left on device

下載時:

docker pull kdeneon/all

這是的輸出df -H

Filesystem      Size  Used Avail Use% Mounted on
dev             2.6G     0  2.6G   0% /dev
run             2.6G  930k  2.6G   1% /run
/dev/dm-0        16G   11G  4.8G  69% /
tmpfs           2.6G   39M  2.6G   2% /dev/shm
tmpfs           2.6G     0  2.6G   0% /sys/fs/cgroup
tmpfs           2.6G   48M  2.6G   2% /tmp
/dev/dm-1        18G  631M   17G   4% /home
tmpfs           514M  4.1k  514M   1% /run/user/1000

我什至將圖像目錄從 符號連結/var/lib/docker/image/home/newbie/docker/image. 因為/home只有4%用法。

ls -l /var/lib/docker/image
lrwxrwxrwx 1 root root   26 Mar  9 07:32 image -> /home/newbie/docker/image/

這沒有效果。

我還可以做些什麼 ?為什麼會這樣?

解決這個問題的正確方法是將docker數據目錄移動到另一個有足夠空間的位置。就我而言,這是我的家庭分區。

為此,我必須在其中創建一個daemon.json文件/etc/docker並向其中添加以下行:

{
   "data-root": "/home/newbie/docker_data"
}

然後重新啟動 docker 服務,如果你正在起訴 systemd,這應該是:

systemctl restart docker

我在沒有 Docker Desktop 的 Mac 電腦上遇到了同樣的錯誤。移動 docker 數據目錄對我不起作用。

這就是使用 minikube 對我有用的方法。

minikube stop && minikube delete // this is required
minikube start --memory=16384 --cpus=8 --disk-size='80000mb'
eval $(minikube docker-env)

然後再試docker pull...一次。

引用自:https://unix.stackexchange.com/questions/571899