Docker存儲目錄問題以及如何修改Docker默認(rèn)存儲位置
如何更改docker默認(rèn)存儲路徑?
版本1(沒測試)
默認(rèn)情況下,Docker 在 Linux 上安裝時會將其數(shù)據(jù)(如鏡像和容器)存儲在 /var/lib/docker
目錄下,這個目錄通常位于根分區(qū) /
。如果你的根分區(qū) /
的空間不足,你可以考慮將 Docker 的數(shù)據(jù)目錄移動到其他分區(qū),或者在安裝 Docker 時直接配置它使用其他分區(qū)。
要更改 Docker 的默認(rèn)存儲位置,你可以通過修改 Docker 的配置文件或在啟動 Docker 服務(wù)時設(shè)置環(huán)境變量來指定新的數(shù)據(jù)目錄。下面是一些步驟說明如何進(jìn)行配置:
停止 Docker 服務(wù):
sudo systemctl stop docker
修改 Docker 配置文件(如果你使用的是 systemd):
打開或創(chuàng)建 Docker 的 systemd 配置文件(一開始沒有這個文件是正常的):
sudo vi /etc/systemd/system/docker.service.d/override.conf
添加以下內(nèi)容來指定新的數(shù)據(jù)目錄,假設(shè)你想將數(shù)據(jù)存儲在 /mnt/docker/
:
[Service] ExecStart= ExecStart=/usr/bin/dockerd --data-root /mnt/docker -H fd:// --containerd=/run/containerd/containerd.sock
保存并關(guān)閉文件。
重新加載 systemd 配置并重新啟動 Docker 服務(wù):
sudo systemctl daemon-reload sudo systemctl start docker
檢查 Docker 是否使用新的數(shù)據(jù)目錄:
docker info | grep "Docker Root Dir"
確保新的數(shù)據(jù)目錄所在的分區(qū)有足夠的空間,以避免在使用 Docker 時遇到空間不足的問題。
版本2(可行)
要修改 Docker 的存儲路徑至 /data/docker
,您可以按照以下步驟操作:
1. 停止 Docker 服務(wù):
打開終端,使用以下命令停止 Docker 服務(wù):
sudo systemctl stop docker.socket sudo systemctl stop docker
一開始只執(zhí)行一條停不了:
后面兩條執(zhí)行就能停了:
2. 創(chuàng)建新的存儲目錄:
如果 /data/docker
目錄還不存在,使用以下命令創(chuàng)建它:
sudo mkdir -p /data/docker
3. 修改 Docker 配置文件:
編輯 Docker 的 daemon 配置文件 /etc/docker/daemon.json
。如果該文件不存在,您需要創(chuàng)建它。
sudo vi /etc/docker/daemon.json
在文件中添加或修改以下內(nèi)容:
{ "data-root": "/data/docker" }
保存并關(guān)閉文件。
4. 移動現(xiàn)有的 Docker 數(shù)據(jù):
如果您的 Docker 安裝中已經(jīng)有數(shù)據(jù),并且您希望保留這些數(shù)據(jù),可以將現(xiàn)有的數(shù)據(jù)移動到新的目錄:
sudo rsync -aP /var/lib/docker/ /data/docker
5. 重新啟動 Docker 服務(wù):
使用以下命令重新啟動 Docker 服務(wù):
sudo systemctl start docker.socket sudo systemctl start docker
6. 驗(yàn)證修改
檢查 Docker 是否正確使用新的存儲路徑,可以查看 Docker 信息:
docker info | grep 'Docker Root Dir'
現(xiàn)在 Docker 已經(jīng)成功地使用 /data/docker
作為其根目錄了。至于您看到的警告信息 “WARNING: No swap limit support”,這是一個常見的信息,指的是您的 Linux 系統(tǒng)上沒有啟用內(nèi)存交換限制的支持。
在 Docker 中,這種警告通常不會影響 Docker 容器的正常運(yùn)行,它只意味著 Docker 無法強(qiáng)制限制容器的交換內(nèi)存使用量。這通常與 Linux 內(nèi)核的某些配置有關(guān),特別是 cgroup 的配置。
注意:如果不放心,可以執(zhí)行mv /var/lib/docker /var/lib/docker_old
備份檢測下
7. 真實(shí)驗(yàn)證(記錄各時間點(diǎn)和存儲占用)
通過使用一下兩條命令:
date df -BM
Thu 11 Jul 2024 01:33:57 PM CST(/Available 27445M)
root@ai-video-ecs-01:/userdata/tmp# date Thu 11 Jul 2024 01:33:57 PM CST root@ai-video-ecs-01:/userdata/tmp# root@ai-video-ecs-01:/userdata/tmp# root@ai-video-ecs-01:/userdata/tmp# df -BM Filesystem 1M-blocks Used Available Use% Mounted on udev 32078M 0M 32078M 0% /dev tmpfs 6425M 4M 6422M 1% /run /dev/mapper/ubuntu--vg-ubuntu--lv 38122M 8911M 27445M 25% / tmpfs 32124M 0M 32124M 0% /dev/shm tmpfs 5M 0M 5M 0% /run/lock tmpfs 32124M 0M 32124M 0% /sys/fs/cgroup /dev/loop1 64M 64M 0M 100% /snap/core20/2318 /dev/loop0 64M 64M 0M 100% /snap/core20/1828 /dev/loop2 50M 50M 0M 100% /snap/snapd/18357 /dev/loop3 39M 39M 0M 100% /snap/snapd/21759 /dev/vda2 1946M 109M 1719M 6% /boot /dev/loop4 92M 92M 0M 100% /snap/lxd/24061 /dev/sda1 749867M 4140M 707565M 1% /ky /dev/sda2 9401234M 2884M 8924482M 1% /data tmpfs 6425M 0M 6425M 0% /run/user/1000 overlay 9401234M 2884M 8924482M 1% /data/docker/overlay2/c385332babdae4ee85601ffa1dd1ebe6c36fc1f618389ace09b2051731d5fa8c/merged overlay 9401234M 2884M 8924482M 1% /data/docker/overlay2/31a24b6f39c2ea25d700754b5c9ea78574e772589690437fd60e4b60fac15c0c/merged overlay 9401234M 2884M 8924482M 1% /data/docker/overlay2/88149e56439d9bad5b2b785f12ff77b6052c5ba369f53f9e12a38698c34615ce/merged overlay 9401234M 2884M 8924482M 1% /data/docker/overlay2/b2171ae8eaa2b4b6bf61de50165b2e885f6e2d4373d02fd1e492cc1d2158bd9b/merged overlay 9401234M 2884M 8924482M 1% /data/docker/overlay2/3e9af67e01934706a6712e2a6601292b105c26d5fecf82218f8d7ef65ca30b3d/merged overlay 9401234M 2884M 8924482M 1% /data/docker/overlay2/341e8bc8f48a17d24ee4005c45cda9e121bececd2b0fea5463b337acbce64f04/merged overlay 9401234M 2884M 8924482M 1% /data/docker/overlay2/6ee97fa0e1597535d0d70be41d5a3220c6f58ff033dba5388a53034afbeb8f5f/merged root@ai-video-ecs-01:/userdata/tmp#
Thu 11 Jul 2024 04:04:38 PM CST(/Available 27444M)
hw@ai-video-ecs-01:~$ date Thu 11 Jul 2024 04:04:38 PM CST hw@ai-video-ecs-01:~$ hw@ai-video-ecs-01:~$ df -BM Filesystem 1M-blocks Used Available Use% Mounted on udev 32078M 0M 32078M 0% /dev tmpfs 6425M 4M 6422M 1% /run /dev/mapper/ubuntu--vg-ubuntu--lv 38122M 8911M 27444M 25% / tmpfs 32124M 0M 32124M 0% /dev/shm tmpfs 5M 0M 5M 0% /run/lock tmpfs 32124M 0M 32124M 0% /sys/fs/cgroup /dev/loop1 64M 64M 0M 100% /snap/core20/2318 /dev/loop0 64M 64M 0M 100% /snap/core20/1828 /dev/loop2 50M 50M 0M 100% /snap/snapd/18357 /dev/loop3 39M 39M 0M 100% /snap/snapd/21759 /dev/vda2 1946M 109M 1719M 6% /boot /dev/loop4 92M 92M 0M 100% /snap/lxd/24061 /dev/sda1 749867M 4141M 707564M 1% /ky /dev/sda2 9401234M 2886M 8924479M 1% /data tmpfs 6425M 0M 6425M 0% /run/user/1000
Fri 12 Jul 2024 01:51:59 PM CST(/Available 27444M)
root@ai-video-ecs-01:/userdata/tmp# date Fri 12 Jul 2024 01:51:59 PM CST root@ai-video-ecs-01:/userdata/tmp# root@ai-video-ecs-01:/userdata/tmp# df -BM Filesystem 1M-blocks Used Available Use% Mounted on udev 32078M 0M 32078M 0% /dev tmpfs 6425M 4M 6422M 1% /run /dev/mapper/ubuntu--vg-ubuntu--lv 38122M 8911M 27444M 25% / tmpfs 32124M 0M 32124M 0% /dev/shm tmpfs 5M 0M 5M 0% /run/lock tmpfs 32124M 0M 32124M 0% /sys/fs/cgroup /dev/loop1 64M 64M 0M 100% /snap/core20/2318 /dev/loop0 64M 64M 0M 100% /snap/core20/1828 /dev/loop2 50M 50M 0M 100% /snap/snapd/18357 /dev/loop3 39M 39M 0M 100% /snap/snapd/21759 /dev/vda2 1946M 109M 1719M 6% /boot /dev/loop4 92M 92M 0M 100% /snap/lxd/24061 /dev/sda1 749867M 4154M 707550M 1% /ky /dev/sda2 9401234M 2903M 8924463M 1% /data tmpfs 6425M 0M 6425M 0% /run/user/1000 overlay 9401234M 2903M 8924463M 1% /data/docker/overlay2/c385332babdae4ee85601ffa1dd1ebe6c36fc1f618389ace09b2051731d5fa8c/merged overlay 9401234M 2903M 8924463M 1% /data/docker/overlay2/31a24b6f39c2ea25d700754b5c9ea78574e772589690437fd60e4b60fac15c0c/merged overlay 9401234M 2903M 8924463M 1% /data/docker/overlay2/88149e56439d9bad5b2b785f12ff77b6052c5ba369f53f9e12a38698c34615ce/merged overlay 9401234M 2903M 8924463M 1% /data/docker/overlay2/b2171ae8eaa2b4b6bf61de50165b2e885f6e2d4373d02fd1e492cc1d2158bd9b/merged overlay 9401234M 2903M 8924463M 1% /data/docker/overlay2/3e9af67e01934706a6712e2a6601292b105c26d5fecf82218f8d7ef65ca30b3d/merged overlay 9401234M 2903M 8924463M 1% /data/docker/overlay2/341e8bc8f48a17d24ee4005c45cda9e121bececd2b0fea5463b337acbce64f04/merged overlay 9401234M 2903M 8924463M 1% /data/docker/overlay2/6ee97fa0e1597535d0d70be41d5a3220c6f58ff033dba5388a53034afbeb8f5f/merged root@ai-video-ecs-01:/userdata/tmp#
為什么存在以上兩種修改方法,有何異同?
(修改etc/systemd/system/docker.service.d/override.conf和修改etc/docker/daemon.json )
在修改 Docker 的存儲位置時,可以通過修改 etc/docker/daemon.json
或 etc/systemd/system/docker.service.d/override.conf
來實(shí)現(xiàn),兩種方式都是正確的,但它們有不同的用途和適用情況:
修改 /etc/docker/daemon.json:
這種方法通過 Docker 的配置文件來設(shè)置 Docker 的默認(rèn)行為,包括存儲位置、日志級別、網(wǎng)絡(luò)配置等。
要修改存儲位置,你可以在 daemon.json
文件中設(shè)置 data-root
屬性,指向新的存儲路徑。例如:
{ "data-root": "/new/path/to/docker-data" }
這種方法的優(yōu)點(diǎn)是配置簡單,且直接通過 Docker 自己的配置文件進(jìn)行管理,易于理解和維護(hù)。
修改 /etc/systemd/system/docker.service.d/override.conf
:
這種方法適用于在使用 systemd 管理 Docker 服務(wù)的系統(tǒng)上。通過 systemd 的配置覆蓋文件來修改 Docker 服務(wù)的啟動參數(shù)。
你可以通過創(chuàng)建或修改 override.conf
文件,添加一個新的 ExecStart
行,指定新的存儲位置。例如:
[Service] ExecStart= ExecStart=/usr/bin/dockerd --data-root /new/path/to/docker-data
注意,需要先清空原有的 ExecStart
設(shè)置(ExecStart=
),然后重新定義。這樣可以確保使用你的自定義設(shè)置啟動 Docker。
這種方法允許你對 Docker 的啟動過程進(jìn)行更細(xì)粒度的控制,但相對復(fù)雜,需要對 systemd 的配置有一定了解。
總結(jié):選擇哪種方法取決于你的具體需求和你對系統(tǒng)的控制級別。如果你希望通過 Docker 自身的配置來管理,使用 daemon.json
是更直接的方法。如果你需要更復(fù)雜的配置或者想要控制服務(wù)的啟動參數(shù),使用 systemd 的 override.conf
方法會更合適。
總結(jié)
到此這篇關(guān)于Docker存儲目錄問題以及如何修改Docker默認(rèn)存儲位置的文章就介紹到這了,更多相關(guān)Docker默認(rèn)存儲位置修改內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows安裝docker-desktop的詳細(xì)步驟
這篇文章主要介紹了Windows安裝docker-desktop的詳細(xì)步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-03-03docker容器狀態(tài)的轉(zhuǎn)換實(shí)現(xiàn)
這篇文章主要介紹了docker容器狀態(tài)的轉(zhuǎn)換實(shí)現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11基于Docker版本squid搭建代理服務(wù)器的過程詳解
這篇文章主要介紹了基于Docker版本squid搭建代理服務(wù)器的配置方法,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下本文給大家介紹的非常詳細(xì)2024-03-03使用Docker registry鏡像創(chuàng)建私有倉庫的方法
本篇文章主要介紹了使用Docker registry鏡像創(chuàng)建私有倉庫的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04Docker Desktop更改鏡像存儲位置的實(shí)現(xiàn)
本文主要主要介紹了Docker Desktop更改鏡像存儲位置的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06