По умолчанию Docker хранит большую часть своих данных в каталоге /var/lib/docker
в системах Linux. Может наступить момент, когда вы захотите переместить это хранилище в другое место. Например, самая очевидная причина может заключаться в том, что у вас заканчивается место на диске.
В этом руководстве мы покажем вам, как изменить каталог хранения данных Docker на другое место в вашей системе Linux. Большая часть настроек, которые необходимо выполнить, связана с systemd, а затем с перемещением каталога в новое место. Для начала следуйте пошаговым инструкциям ниже.
Мы разберемся:
Как перенести установку Docker в новое место
Категория | Требования, Соглашения или используемая версия программного обеспечения |
---|---|
Система | Любой дистрибутив Linux с systemd |
Программное обеспечение | Docker |
Другое | Привилегированный доступ к вашей системе Linux от имени пользователя root или с помощью команды sudo . |
Условности | # — требует, чтобы заданные команды Linux выполнялись с правами суперпользователя либо напрямую от имени пользователя root, либо с помощью команды sudo $ — требует, чтобы заданные команды Linux выполнялись обычным пользователем без привилегий |
Обязательно выполняйте эти действия в указанном порядке, иначе вы можете столкнуться со странными ошибками, устранение которых потребует некоторых усилий. Эти инструкции были выполнены в системе Ubuntu, но должны работать в любом другом дистрибутиве Linux, если он использует systemd.
Первое, что мы хотим сделать, — это остановить работу Docker. Внесение этих изменений во время работы Docker наверняка приведёт к ошибкам. Чтобы остановить Docker, используйте следующую команду
$ sudo systemctl stop docker.service
$ sudo systemctl stop docker.socket
Далее нам нужно отредактировать файл /lib/systemd/system/docker.service
. Это файл systemd, связанный с Docker, и нам нужно указать новое местоположение в этом файле. Откройте его с помощью nano или другого текстового редактора.
sudo nano /lib/systemd/system/docker.service
Строка, которую нам нужно отредактировать, выглядит следующим образом:
ExecStart=/usr/bin/dockerd -H fd://
Измените строку, добавив -g
и указав новое желаемое расположение каталога Docker. Когда вы закончите вносить изменения, вы можете сохранить файл и выйти из него.
ExecStart=/usr/bin/dockerd -g /new/path/docker -H fd://
Если вы ещё этого не сделали, создайте новый каталог, в который вы планируете переместить файлы Docker.
sudo mkdir -p /new/path/docker
После этого вы можете скопировать содержимое из /var/lib/docker
в новый каталог. Для этого можно использовать следующую команду rsync.
sudo rsync -aqxP /var/lib/docker/ /new/path/docker
Затем перезагрузите конфигурацию systemd для Docker, так как мы внесли изменения ранее. После этого мы можем запустить Docker.
sudo systemctl daemon-reload
sudo systemctl start docker
Чтобы убедиться, что всё работает, выполните
команду ps, чтобы убедиться, что служба Docker использует новый каталог.
ps aux | grep -i docker | grep -v grep