docker
February 6, 2023

Перенос системных файлов Docker в другой каталог

Путь по умолчанию для хранения файлов Docker находится в /var/lib/docker, но можно переместить эти файлы, к примеру, на raid массив. В моем примере это путь /mnt/raid1/docker

Для начала останавливаем сервис и сокет докера

sudo systemctl stop docker.service
sudo systemctl stop docker.socket

Создаем файл (если он еще не был создан)

sudo vim /etc/docker/daemon.json

Вносим в него такие изменения:

{
    "data-root": "/mnt/raid1/docker"
}

Теперь нужно скопировать все файлы из старого каталога в новый, с сохранением прав

sudo rsync -ahv /var/lib/docker/ /mnt/raid1/docker/

Делаем daemon-reload и запускаем docker

sudo systemctl daemon-reload
sudo systemctl restart docker

После удачного запуска проверяем фактический путь хранения данных докер на примере volume'ов:

$ docker volume ls
DRIVER    VOLUME NAME
local     0000c1c24079fb673a4572d8ddc29700fa14...
local     1ae637e8a588a87e5d57d7293d197ac9eefd...


$ docker volume inspect 0000c1c24079fb673a4572d8ddc29700fa14...
[
    {
        "CreatedAt": "2023-02-06T17:43:21+03:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/mnt/raid1/docker/volumes/0000c1c24079fb673a4572d8ddc29700fa14.../_data",
        "Name": "0000c1c24079fb673a4572d8ddc29700fa14...",
        "Options": null,
        "Scope": "local"
    }
]

Как видим Mountpoint изменился, теперь можно удалить или переименовать старую директорию хранения файлов докера

sudo rm -rf /var/lib/docker