Docker: load鏡像時提示(no space left device)解決方案
1. 背景
LZ花了幾天時間配置了一套sever環境,期間無比痛苦真的,但是基本上配置完一次後一勞永逸,只要把對應的鏡像load進服務器,就不用再配置環境了,雖然前期麻煩很多,但是無論換什麼機器,LZ基本上可以是一鍵部署了,不過這也是剛剛學習的一個新技能,所以應用起來並不是很熟練,尤其是遇到使用gpu的一些問題,如驅動之類的問題,解決起來還是比較痛苦的,好啦,生活不就是這樣嘛.
那麼辛苦配置好的docker環境, lz使用save將其保存下來
docker save ID > your_image_name.tar
因爲image比較大,還是需要挺長時間的
然後上傳到服務器上使用
docker load < your_image_name.tar
滿心歡喜以爲可以創建一個容器,結果發現
no space left device
2. 解決方案
出現此問題一般是docker 根目錄空間不足導致。可修改其 Docker Root Dir 的值,使其指向一個更大空間的目錄即可,LZ通過
df -h
發現系統盤確實被用完了,但是home路徑下還有空間,於是進行了如下操作
1. 查看docker 的根目錄:
docker info
顯示信息中有docker根目錄的位置信息, Docker Root Dir: /var/lib/docker/
2. 查看目錄所剩餘空間
df -hl /var/lib/docker/
我把它改到/home/docker/lib/docker目錄下
3. 創建目標目錄
mkdir -p /etc/systemd/system/docker.service.d/
4. 創建配置文件
vi /etc/systemd/system/docker.service.d/devicemapper.conf
5. 錄入配置信息
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker
6. 更新docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
7. 注意點
由於更換了docker 目錄,以前下載的鏡像需要轉移到新目錄下,建議直接刪除原來的鏡像,重新下載。所以這個建議在剛開始下載docker的時候就進行修改,避免後續的問題
參考地址