После заказа небольшого инстанса обычно заказываешь HDD Volume, который необходимо смонтировать и далее использовать для docker local storage.
После заказа нового volume и прекрепения к конкретному инстансу, создаем файловую систему и пропишем fstab.
1 2 3 4 |
[ec2-username ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvdf 202:80 0 500G 0 disk xvda1 202:1 0 8G 0 disk / |
Новые volume являются блочными устройствами и мы должны создать на них файловую систему, прежде чем сможем их смонтировать. Проверим текущий тип фаловой системы
1 2 |
sudo file -s /dev/xvdf /dev/xvdf: data |
Создаем файловую систему
1 |
sudo mkfs -t ext4 /dev/xvdf |
Создадим точку монтирования
1 |
sudo mkdir /opt/docker |
Монтируем
1 |
sudo mount /dev/xvdf /opt/docker |
Пропишем в fstab наш новый раздел для автоматического майнта при загрузке инстанса, предварительно сделаем бекап нашего fstab
1 |
sudo cp /etc/fstab /etc/fstab.back |
Добавим строку
1 2 |
nano /etc/fstab /dev/xvdf /opt/docker ext4 defaults 0 0 |
Теперь перенесем все содержимое /var/lib/docker на наш новый раздел. Для Ubuntu/Debian Linux выполним следующие действия
В файле /lib/systemd/system/docker.service изменим строку указав новое место для docker
1 |
nano /lib/systemd/system/docker.service |
1 2 3 4 |
Текущий конфиг: ExecStart=/usr/bin/docker daemon -H fd:// Новый конфиг: ExecStart=/usr/bin/docker daemon -g /opt/docker -H fd:// |
Останавливаем docker service
1 |
systemctl stop docker |
Проверим, чтобы docker был остановлен
1 |
ps aux | grep -i docker | grep -v grep |
Если вывод пустой, выполняем
1 |
systemctl daemon-reload |
Теперь выполним перенос данных из старого /var/lib/docker в новый каталог
1 |
rsync -aqxP /var/lib/docker/ /new/path/docker |
Процедура может занятьдлительное время если каталог был большим.
После завершения запускаем docker
1 |
systemctl start docker |
Проверим, чтобы докер запустился с новым каталогом
1 2 3 |
ps aux | grep -i docker | grep -v grep root 2094 0.2 0.4 664471 36152 ? Ssl 10:21 0:00 /usr/bin/docker daemon -g /opt/docker -H fd:// root 2115 0.0 0.1 360303 10433 ? Ssl 10:21 0:00 docker-containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime docker-runc |