Eylül 9
2022
Taşındık 100mt ilerdeyiz (Docker)
Siz de benim gibi docker’a ait her şeyi ayrı bir diskte tutmaktan yanaysanız aşağıdaki script sizi havalara uçurabilir!
Bu script kısaca şunları yapıyor:
- Çalışan Docker servisini durduruyor
- Yeni path oluşturuyor
- Eski path içindeki herşeyi yeni yerine taşıyor
- Docker servisini yeni path’ e göre düzenliyor
- Eskilerin yedeğini alıyor
- Yeni path için sembolik link oluşturuyor
- Systemd servislerini reload ediyor
- Docker servisini yeniden başlatıyor
- docker info komutunddan yeni root path’ini okuyor.
#!/bin/bash
#KertenKerem Gururla Sunar
#Taşımak İstediğiniz Dosya Yolunu "dockerdir_new" değişkenine yazmalısınız
dockerdir_new='/media/dockerdiski/var'
dockerdir_old='/var/lib/docker/'
set -e
dockerdir_new2=$(echo "$dockerdir_new" | sed 's/\//\\\//g')
systemctl stop docker
mkdir -p $dockerdir_new
rsync -a $dockerdir_old* $dockerdir_new
sed -i.bak "/ExecStart=\/usr\/bin\/dockerd \-H fd:\/\//c ExecStart=\/usr\/bin\/dockerd \-H fd:\/\/ -g ${dockerdir_new2}" /lib/systemd/system/docker.service
mv $dockerdir_old /var/lib/docker.bak/
ln -s $dockerdir_new /var/lib/docker
systemctl daemon-reload
systemctl start docker.service
printf '\n* Dockera ait eski systemd konfigürasyonu burada bulunmaktadır: /lib/systemd/system/docker.service.bak\n* Eski Docker kök dizini buraya kopyalanmıştır: /var/lib/docker.bak/\n\n'
docker info | grep 'Root Dir'