Стандартный каталог данных, используемый docker, - /var/lib/docker, и поскольку в этом каталоге будут храниться все ваши образы, тома и т.д., он может стать довольно большим за относительно небольшое время.
Если необходимо переместить каталог данных docker в другое место, можно выполнить следующие простые действия.
1. Остановить демон docker
sudo service docker stop
2. Добавьте конфигурационный файл, указывающий демону docker местоположение каталога данных
Создайте конфигурацию демона докера /etc/docker/daemon.json со следующим содержимым:
Версия до v17.05.0
{
"graph": "/path/to/your/new/docker/root"
}
“"/path/to/your/new/docker/root” - это новое местоположение, которое вы хотите использовать для нового каталога данных docker.
v17.05.0 и новее
Начиная с версии 17.05.0 флаг -g
или --graph
для команды dockerd
или docker daemon
использовался для указания каталога, в котором должны храниться постоянные данные и конфигурация ресурсов, и был заменен на более описательный флаг --data-root
. Создаем конфигурационный файл демона:
{
"data-root": "/path/to/your/new/docker/root"
}
Эти флаги “graph” были добавлены до выхода Docker 1.0, поэтому не будут удалены, а только спрятаны. Вы по-прежнему можете использовать этот флаг, но просто не советуем его использовать.
3. Скопируйте текущий каталог данных в новый
Мы можем использовать как команду rsync, так и команду cp:
sudo rsync -aP /var/lib/docker/ "/path/to/your/new/docker/root "sudo cp -rp /var/lib/docker/* "/path/to/your/new/docker/root/"
4. Переименуйте старый каталог docker
Переименуйте старый каталог, чтобы демон docker не мог использовать старый каталог.
sudo mv /var/lib/docker /var/lib/docker.old
5. Перезапустите демон docker
sudo service docker start
6. Тест
Если все в порядке, то вы не должны заметить никаких отличий в использовании ваших docker-контейнеров.
7. Очистите старые данные.
После всего этого необходимо очистить старые данные:
rm -rf /var/lib/docker.old