docker目錄占用磁盤空間太大,将docker的根目錄遷移到其他目錄
-
- 1. 查找docker工作根目錄
- 2. 檢視工作目錄占用空間大小
- 3. 清理docker占用空間
-
- 3.1 檢視docker占用的磁盤空間
- 3.2 清理docker占用空間
- 4. 遷移docker根目錄
-
- 4.1 停止docker服務
- 4.2 檢視磁盤占用情況
- 4.3 拷貝舊目錄檔案到新目錄下
- 5. 修改配置的docker根目錄
- 6. 重新開機docker服務
- 7. 檢視docker資訊
- 8. 驗證docker其他資訊
- 9. 其他docker相關知識
1. 查找docker工作根目錄
輸入指令
docker info | grep 'Docker Root Dir'
查找docker的根目錄。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLyETO0QjN1cTMyEjMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2. 檢視工作目錄占用空間大小
我這裡隻是做個示範,2.4G簡直不要太小了。
3. 清理docker占用空間
該步驟為可選步驟,如果擔心鏡像被誤删除,可以直接跳過該步驟。
3.1 檢視docker占用的磁盤空間
指令
docker system df
可以檢視docker占用的磁盤空間
3.2 清理docker占用空間
指令
docker system prune
可以用于清理docker占用的空間,删除關閉的容器、無用的資料卷和網絡,以及dangling鏡像(即無tag的鏡像)
指令
docker system prune -a
可以清理所有沒有被使用的docker鏡像,即使容器隻是暫時停止的狀态。使用該指令之前請再三确認,避免删除重要的鏡像等檔案。
4. 遷移docker根目錄
4.1 停止docker服務
4.2 檢視磁盤占用情況
檢視本機磁盤的占用情況,找到合适的、空間足夠大的磁盤來作為docker的根目錄。
可以看到,我這個機器的
/data
目錄空間最大,因為我們現在的docker根目錄已經是在
/data
目錄下面了(因為我之前已經遷移了一次了,這裡隻是再做一次示範記錄),是以這次的示範會從目錄
/data/k8s/docker/data
遷移到
/data/docker/data
。
4.3 拷貝舊目錄檔案到新目錄下
建目錄
開始拷貝,拷貝時間根據具體情況而定,應該要蠻久的。
/data/k8s/docker/data
–>
/data/docker/data
。
檢視拷貝情況
5. 修改配置的docker根目錄
docker的工作目錄
/data/k8s/docker/data
是通過配置檔案指定的,我們需要找到該檔案,并且将工作目錄更改為
/data/docker/data
。
這個配置檔案可能每種安裝方式的位置有點不同。我現在知道的有兩個地方。
-
檔案内。/etc/docker/daemon.json
docker目錄占用磁盤空間太大,将docker的根目錄遷移到其他目錄 - service檔案内,我有一台機器放在
這個地方,隻是做個參考,但是一般也是寫在docker的service檔案裡面的,可以通過檢視服務資訊找到,指令示例:/usr/lib/systemd/system/docker.service.d/docker-options.conf
systemctl status docker
docker目錄占用磁盤空間太大,将docker的根目錄遷移到其他目錄
找到你的配置檔案所在位置,并修改圖中劃紅線的地方,将舊的目錄替換成新的目錄。
/data/k8s/docker/data
–>
/data/docker/data
。
6. 重新開機docker服務
[[email protected] /]# systemctl daemon-reload
[[email protected] /]# systemctl restart docker
7. 檢視docker資訊
可以看到現在的docker根目錄已經成功由
/data/k8s/docker/data
遷移到
/data/docker/data
了。
8. 驗證docker其他資訊
如果不放心,可以重新看一下docker的鏡像或者容器資訊。
如果還是不放心的話,可以使用docker去pull一些大點兒的鏡像,然後檢視
/data/docker/data
檔案夾的大小是不是發生了變化,記得pull之前先檢視一下。檢視檔案夾大小的指令在後面一節。
如果确認完畢之後沒有什麼問題了,就可以把之前的舊目錄給釋放出來了。簡單粗暴,直接删除
/data/k8s/docker/data
9. 其他docker相關知識
順便再附上一些解決該問題的過程中使用到的知識。
1.根據docker overlay中的檔案夾名稱,查找容器 。
有寫檔案夾找不到,就說明這個容器可能已經被删除了或者失效了。
2.檢視檔案夾占用磁盤空間大小
du -sh 檔案夾名稱
檢視目前目錄下所有子目錄的大小,并從小到大排序:
du -sh ./*|sort -h