Cumartesi, Aralık 21, 2024

Docker’da Varsayılan Veri Klasörü Nasıl Değiştirilir?

yüksek çözünürlüklü docker logosu

Docker’ı sisteme ilk kurduğunuzda indirilen imajlara kadar her şeyi /var/lib/docker içerisinde tutmaktadır. Başka bir yerde bu verileri depolamak istiyoruz, ben genellikle bu tarz verileri SSD üzerinde tutmam, Cold Storage üzerine alırım.

Çözümümüze gelecek olursak başlamadan önce varsayılan klasörü yani /var/lib/docker dizinini temizliyoruz.

docker system prune -a

Komutu işinizi fazlasıyla görecektir. Dizin temizlendikten sonra /etc/docker/daemon.json yoluna gidiyoruz karşınıza aşağıdaki gibi bir yapılandırma dosyası çıkacak.

{
 "authorization-plugins": [],
 "dns": [],
 "dns-opts": [],
 "dns-search": [],
 "exec-opts": [],
 "exec-root": "",
 "experimental": false,
 "storage-driver": "",
 "storage-opts": [],
 "labels": [],
 "live-restore": true,
 "log-driver": "",
 "log-opts": {},
 "mtu": 0,
 "pidfile": "",
 "graph": "",
 "cluster-store": "",
 "cluster-store-opts": {},
 "cluster-advertise": "",
 "max-concurrent-downloads": 3,
 "max-concurrent-uploads": 5,
 "shutdown-timeout": 15,
 "debug": true,
 "hosts": [],
 "log-level": "",
 "tls": true,
 "tlsverify": true,
 "tlscacert": "",
 "tlscert": "",
 "tlskey": "",
 "swarm-default-advertise-addr": "",
 "api-cors-header": "",
 "selinux-enabled": false,
 "userns-remap": "",
 "group": "",
 "cgroup-parent": "",
 "default-ulimits": {},
 "init": false,
 "init-path": "/usr/libexec/docker-init",
 "ipv6": false,
 "iptables": false,
 "ip-forward": false,
 "ip-masq": false,
 "userland-proxy": false,
 "userland-proxy-path": "/usr/libexec/docker-proxy",
 "ip": "0.0.0.0",
 "bridge": "",
 "bip": "",
 "fixed-cidr": "",
 "fixed-cidr-v6": "",
 "default-gateway": "",
 "default-gateway-v6": "",
 "icc": false,
 "raw-logs": false,
 "registry-mirrors": [],
 "seccomp-profile": "",
 "insecure-registries": [],
 "disable-legacy-registry": false,
 "default-runtime": "runc",
 "oom-score-adjust": -500,
 "runtimes": {
  "runc": {
   "path": "runc"
  },
  "custom": {
   "path": "/usr/local/bin/my-runc-replacement",
   "runtimeArgs": [
    "--debug"
   ]
  }
 }
}

Yapılandırma dosyasının içerisinde şu değişikliği yapıyoruz ve kayıt ediyoruz.

"data-root": "/disk1/data/docker_datum",
"storage-driver": "overlay2"

bu işlemin ardından systemctl restart docker komutu ile yeniden başlatıktan sonra gereken docker dosyalarını yeni yerinde bulabilirsiniz. Bu sayede ana diskiniz dolmadan işlemleri yapabilirsiniz.