02.07. Data Volumes

Container içinde yapılan işlemler container silindiği anda kaybolur. Yani kalıcı bir depolama işlemi olmaz. Depolama için Docker Volume kullanılmalıdır. Bu bölüm, volume kavramına  ve örneklerine ayrılmıştır.

Docker volume, container’larının üzerinde bulunan dosyaları saklamak için kullanılan bir yapıdır. Bu dosyaların saklandığı yerler Docker host’unuza bağlı bir diskte, başka bir Docker host veya bir bulut depolama hizmeti olabilir. Bu sayede, container’ı kapatıp tekrar açtığımızda verilerimize ulaşabiliriz. Bir anlamda dosyalarımızın yedeklenmesini sağlar. Bir volume, birden fazla container tarafından paylaşılabilir.

Volume işlemine geçmeden öncelikle docker inspect komutu ile container ayarları hakkında bilgi almalıyız. Container tarafında “Volumes” klasörünü buradan bulabiliriz. (Daha önce yarattığımız mysql-server isimli container’a bakıyoruz.)

Biraz satır sayısı fazla ama “Volumes” satırını içinde aradığımız değerler var. (Değer: /var/lib/mysql)

MySQL container’ı kapatıp (açıksa) tekrar çalıştıralım. Yeni komutumuz:

-v volume bağlama için kullanılır. /Users/erdincuzun/db local bilgisayarımızdaki dizini MySQL container içindeki dizine bağlıyoruz. PHPMyAdmin çalıştırın ve tarayıcı üzerinden tekrar bağlanın. PHPMyAdmin aktif etmeyi hatırlayalım.

PHPMyAdmin’in volume ile ilgisi olmadığı için herhangi bir ayara gerek yok. Burada volume parametresi MySQL kullanılmasına rağmen Volumes bölümünde gözükmez. Şimdi Volumes yaratmaya bakalım.

Volumes

docker volume create –-name=volumename –-opt options

  • name: Birimin adıdır.
  • opt: Birimi oluştururken özel ayarlara yapabilirsiniz. Örneğin:

docker volume create –-name = demo –opt o = size = 100m

docker volume ls: Bir docker host’taki tüm volume’ları listeler.

Volumes bölümü ile bağlamak için –volume-driver parametresine değer girilmelidir. Örneğin: (mysql-server durdurun. Aşağıdaki şekilde yeniden başlatın.)