在 Ubuntu 系統中,Docker 默認安裝路徑(程序文件)通常在/usr/bin
等系統目錄,而核心數據(鏡像、容器、卷等)默認存儲在/var/lib/docker
。若需將數據目錄指定到其他位置(這是更常見的需求,因為程序文件通常無需修改路徑),可按以下步驟操作:
方法:修改 Docker 數據存儲目錄(推薦)
1. 停止 Docker 服務
首先確保 Docker 服務處于停止狀態:
sudo systemctl stop docker
sudo systemctl stop docker.socket # 如果上一步有提示就需要停止socket
2. 創建目標目錄
在指定位置創建 Docker 數據目錄(例如/home/用戶名/soft/dockerdata
),并確保權限正確:
sudo mkdir -p /home/用戶名/soft/dockerdata # 替換為你的目標路徑
sudo chmod 711 /home/用戶名/soft/dockerdata # Docker需要該權限
3. 遷移現有數據(如果已有鏡像 / 容器)
若之前已有 Docker 數據,需將默認目錄的內容遷移到新目錄:
sudo rsync -avx /var/lib/docker/ /home/用戶名/soft/dockerdata
4. 配置 Docker 數據目錄
通過daemon.json
配置文件指定新的數據目錄(推薦這種方式,避免修改 systemd 服務文件):
sudo mkdir -p /etc/docker # 確保配置目錄存在
sudo tee /etc/docker/daemon.json <<EOF
{"data-root": "/data/docker"
}
EOF
5. 重啟 Docker 服務并驗證
# 重新加載配置并啟動Docker
sudo systemctl daemon-reload
sudo systemctl start docker# 驗證數據目錄是否生效
sudo docker info | grep "Docker Root Dir"
若輸出顯示為你指定的/data/docker
,則配置成功。
補充說明:
- 程序文件路徑:Docker 的可執行文件(如
docker
、dockerd
)默認安裝在/usr/bin
,一般無需修改(也不建議修改,可能導致依賴問題)。 - 注意事項:
- 目標目錄所在的分區需有足夠空間(存儲鏡像、容器等)。
- 若使用
systemd
管理 Docker,修改daemon.json
是最安全的方式,避免直接編輯/lib/systemd/system/docker.service
(可能被系統更新覆蓋)。 - 若無需保留原有數據,可跳過步驟 3(遷移數據),但新目錄會是空的,原有鏡像 / 容器需重新拉取或創建。
通過以上步驟,即可將 Docker 的核心數據存儲到指定目錄,解決默認路徑空間不足的問題。