測試操作系統: Ubuntu server 20
docker版本:20.10.6
1, 為什么
注: 通常,當開始使用docker時,我們並不太關心Docker 用於存儲鏡像和容器的默認目錄。當使用Docker進行更多實驗時,Docker開始占用大量的空間時,你不得不按下緊急按鈕。所以現在是時候把故障排除放在如何改變docker的默認存儲位置了。
2. 怎么做
方法一:
前提需要了解:
- Docker 當前使用的默認存位
- Docker 當前使用的存儲驅動程序
- 鏡像和容器要存放的新存儲空間
Docker 默認的位置在/var/lib/docker,當前所有的鏡像、容器都存儲在這兒。如果你有任何在運行的容器,停止這些容器,並確保沒有容器在運行,然后運行以下命令,確定當前Docker使用的存儲驅動
sudo docker info
在輸出的信息中,查找Storage Driver那行,並記下:
Storage Driver: overlay2
docker存儲根目錄:
Docker Root Dir: /var/lib/docker
關閉docker服務:
sudo systemctl stop docker.service
創建一個新的文件夾作為docker鏡像新的存儲位置,記下這個文件夾的路徑:
sudo mkdir -p /data/docker
編輯docker配置文件:
sudo vim /etc/systemd/system/multi-user.target.wants/docker.service
# 將ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock修改以下內容:
ExecStart=/usr/bin/dockerd --graph=/home/data/docker --storage-driver=overlay2
開啟docker來更新配置:
sudo systemctl daemon-reload
sudo systemctl start docker
方法二:
然后在將這個文件夾拷貝到新的地方(比如說更大的硬盤上,假設是/data分區,它掛載在一個單獨硬盤上):
sudo cp -r /var/lib/docker /data/docker
然后修改docker中默認鏡像和容器的保存位置,剛安裝docker后沒有該文件,需要新建。
sudo vim /etc/docker/daemon.json
將里面的data-root改為新的docker容器存儲位置,
“data-root”: “/data/docker”,
然后重啟docker服務,就可以更新docker默認的鏡像容器保存位置,特別注意,如果新的保存位置里拷貝了原來容器保存位置里的所有內容,那么鏡像數據等也就遷移過來了。
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker