Docker 數據存儲路徑之解決默認docker路徑位置磁盤空間不足的問題
用于遷移 Docker 默認數據目錄
/var/lib/docker到/mnt/disk/docker,保留所有現有數據且無需修改docker.service,僅通過daemon.json配置完成遷移:
Docker 數據目錄遷移指南(使用 daemon.json)
由于默認路徑
/var/lib/docker所在磁盤空間不足,可以將 Docker 數據目錄遷移到新的掛載磁盤(如/mnt/disk/docker),保留所有鏡像、容器、卷、日志等數據。
1. 停止 Docker 服務
sudo systemctl stop docker
執(zhí)行以下命令確認無殘留進程:
ps aux | grep -E "docker|containerd"
- 確保沒有正在運行的進程如:
dockerdcontainerddocker-containerd-shim- 等其他 docker 子進程
2. 創(chuàng)建新目錄并遷移數據(保留權限)
sudo mkdir -p /mnt/disk/docker sudo rsync -avz /var/lib/docker/ /mnt/disk/docker/
3. 修改 Docker 配置文件/etc/docker/daemon.json
sudo tee /etc/docker/daemon.json <<EOF
{
"data-root": "/mnt/disk/docker",
"hosts": ["unix:///var/run/docker.sock"]
}
EOF或者
vim /etc/docker/daemon.json
{
"data-root": "/mnt/disk/docker",
"hosts": ["unix:///var/run/docker.sock"]
}4. 修復權限(可選但建議)
sudo chown -R root:docker /mnt/disk/docker sudo chmod -R 755 /mnt/disk/docker
5. 重啟 Docker 并驗證
sudo systemctl start docker docker info | grep "Docker Root Dir" # 應輸出 /mnt/disk/docker docker ps -a # 檢查原有容器是否存在
?? Docker 默認數據目錄結構詳解(data-root)
當
data-root默認為/var/lib/docker時,包含以下關鍵子目錄:
/var/lib/docker/ ├── buildkit/ # 鏡像構建緩存 ├── containers/ # 容器運行數據(日志、配置等) ├── image/ # 鏡像及元數據 ├── network/ # 網絡配置 ├── overlay2/ # 鏡像層與容器層(Overlay2 存儲驅動) ├── plugins/ # 插件數據 ├── runtimes/ # 容器運行時信息 ├── swarm/ # Swarm 模式相關數據 ├── tmp/ # 臨時文件 ├── trust/ # 鏡像簽名信任 ├── volumes/ # 卷數據(Volume 和 Bind Mount) └── ... # 其他運行數據
?? 詳細說明
(1)鏡像存儲路徑
- 目錄:
/var/lib/docker/image/ - 元數據:
overlay2/imagedb/: 鏡像 ID、標簽等overlay2/layerdb/: 鏡像層信息(DiffID、ChainID)- 實際內容:
- 鏡像層文件存儲于
/var/lib/docker/overlay2/ - 每層一個目錄,如:
overlay2/<layer-id>/diff
(2)容器運行時數據
- 目錄:
/var/lib/docker/containers/<容器ID>/ - 關鍵文件:
<容器ID>-json.log: 容器日志(JSON 格式)config.v2.json: 容器配置hostname,hosts,resolv.conf: 網絡相關配置
如需恢復默認配置,只需刪除或修改
/etc/docker/daemon.json并遷移數據回/var/lib/docker。
到此這篇關于Docker 數據存儲路徑之解決默認docker路徑位置磁盤空間不足的問題的文章就介紹到這了,更多相關docker路徑位置磁盤空間不足內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
在docker中部署tomcat并且部署java應用程序的步驟詳解
本文給大家介紹如何在docker中部署tomcat及如何部署我們的應用程序到docker容器的tomcat里,本文介紹的非常詳細,具有參考借鑒價值,一起看看吧2016-10-10
創(chuàng)建的docker容器時間顯示錯誤/date錯誤/時區(qū)錯誤
這篇文章主要介紹了創(chuàng)建的docker容器時間顯示錯誤/date錯誤/時區(qū)錯誤的處理方法,一起看看吧2017-06-06
解決Docker報錯:“docker build“ requires exactly&nb
這篇文章主要介紹了解決Docker報錯:“docker build“ requires exactly 1 argument.具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
docker安裝并持久化postgresql數據庫的操作步驟
這篇文章主要介紹了docker安裝并持久化postgresql數據庫的操作步驟,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12

