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'
Category: Genel | LEAVE A COMMENT