Docker - Depolama

Depolama Sürücüleri

Docker, birinin temeldeki depolama aygıtlarıyla çalışmasına izin veren birden çok depolama sürücüsüne sahiptir. Aşağıdaki tablo, depolama sürücüleri için kullanılan teknoloji ile birlikte farklı depolama sürücülerini gösterir.

Teknoloji Depolama Sürücüsü
OverlayFS overlay veya overlay2
AUFS aufs
Btrfs brtfs
Aygıt Yöneticisi aygıt Yöneticisi
VFS vfs
ZFS zfs

Şimdi, çeşitli depolama sürücülerini kullanacağınız bazı örnekleri tartışalım -

AUFS

  • Bu kararlı bir sürücüdür; üretime hazır uygulamalar için kullanılabilir.

  • İyi bir bellek kullanımına sahiptir ve kapsayıcılar için sorunsuz bir Docker deneyimi sağlamak için iyidir.

  • Bu sürücü ile ilişkili dikkate alınması gereken yüksek yazma etkinliği vardır.

  • Hizmet tipi olarak Platform olan sistemler için iyidir.

Cihaz Oluşturucu

  • Bu kararlı bir sürücüdür; sorunsuz bir Docker deneyimi sağlar.

  • Bu sürücü, laboratuvardaki uygulamaları test etmek için iyidir.

  • Bu sürücü, ana Linux çekirdeği işlevselliği ile uyumludur.

Btrfs

  • Bu sürücü, ana Linux çekirdeği işlevselliği ile uyumludur.

  • Bu sürücü ile ilişkili dikkate alınması gereken yüksek yazma etkinliği vardır.

  • Bu sürücü, birden çok derleme havuzuna sahip olduğunuz durumlar için iyidir.

Ovelay

  • Bu kararlı bir sürücüdür ve ana Linux çekirdeği işlevselliği ile uyumludur.

  • Hafıza kullanımı iyidir.

  • Bu sürücü, laboratuvardaki uygulamaları test etmek için iyidir.

ZFS

  • Bu kararlı bir sürücüdür ve laboratuvardaki uygulamaları test etmek için iyidir.

  • Platform-as-a-Service tipi işleyen sistemler için iyidir.

Kullanılan depolama sürücüsünü görmek için, docker info komut.

Sözdizimi

docker info

Seçenekler

Yok

Geri dönüş değeri

Komut, Docker Ana Bilgisayarına yüklenen Docker bileşeniyle ilgili tüm ilgili bilgileri sağlayacaktır.

Misal

sudo docker info

Çıktı

Aşağıdaki çıktı, kullanılan ana sürücünün aufs sürücü ve kök dizininin /var/lib/docker/aufs.

Veri Hacimleri

Docker'da, kapsayıcılar arasında paylaşılabilen ayrı bir biriminiz vardır. Bunlar olarak bilinirdata volumes. Veri hacminin bazı özellikleri şunlardır:

  • Kapsayıcı oluşturulduğunda başlatılırlar.
  • Birçok konteyner arasında paylaşılabilir ve tekrar kullanılabilirler.
  • Birimin kendisinde herhangi bir değişiklik doğrudan yapılabilir.
  • Kapsayıcı silindikten sonra bile var olurlar.

Jenkins kapsayıcımıza bakalım. Hadi yapalımdocker inspectBu görüntünün ayrıntılarını görmek için. Çıktısını yazmak için aşağıdaki komutu verebiliriz.docker inspect bir metin dosyasına komut verin ve ardından dosyayı uygun şekilde görüntüleyin.

sudo docker inspect Jenkins > tmp.txt

Metin dosyasını kullanarak görüntülediğinizde more commandolarak bir giriş göreceksiniz JENKINS_HOME=/var/Jenkins_home.

Bu, konteyner içinde Jenkins görüntüsü aracılığıyla yapılan eşlemedir.

Şimdi, kapsayıcıdaki hacmi yerel bir birimle eşlemek istediğinizi varsayalım, sonra kabı başlatırken –v seçeneğini belirlemeniz gerekir. Aşağıda bir örnek gösterilmiştir -

sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

–V seçeneği, kaptaki hacmi eşlemek için kullanılır. /var/jenkins_home Docker Host'umuzdaki bir konuma /home/demo.

Şimdi gidersen /home/demo Konteynırınızı başlattıktan sonra Docker Host'unuzdaki konum, orada bulunan tüm konteyner dosyalarını göreceksiniz.

Bir Konteyner için Depolama Sürücüsünü Değiştirme

Bir konteyner için kullanılan depolama sürücüsünü değiştirmek isterseniz, bunu konteyneri başlatırken yapabilirsiniz. Bu, kullanılarak yapılabilir.–volume-driver parametresini kullanırken docker runkomut. Aşağıda bir örnek verilmiştir -

sudo docker run –d --volume-driver=flocker 
   –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins

–volume-driver seçeneği, konteyner için başka bir depolama sürücüsü belirtmek için kullanılır.

Sürücünün değiştirildiğini onaylamak için önce şunu kullanalım: docker psçalışan kapsayıcıları görmek ve kapsayıcı kimliğini almak için komut. Öyleyse, önce aşağıdaki komutu verin -

sudo docker ps

Sonra bir yayınlayın docker inspect konteynere karşı koyun ve komutu kullanarak çıktıyı bir metin dosyasına koyun.

sudo docker inspect 9bffb1bfebee > temp.txt

Metin dosyasına göz atarsanız ve yazan satıra giderseniz VolumeDriver, sürücü adının değiştirildiğini göreceksiniz.

Bir Birim Oluşturmak

Kullanılarak önceden bir birim oluşturulabilir. dockerkomut. Bu komut hakkında daha fazla bilgi edinelim.

Sözdizimi

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

Seçenekler

  • name - Bu, oluşturulması gereken birimin adıdır.

  • opt - Bunlar birimi oluştururken sağlayabileceğiniz seçeneklerdir.

Geri dönüş değeri

Komut, oluşturulan birimin adını çıkaracaktır.

Misal

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

Yukarıdaki komutta, 100MB boyutunda ve demo adıyla bir hacim oluşturuyoruz.

Çıktı

Yukarıdaki komutun çıktısı aşağıda gösterilmiştir -

Tüm Ciltleri Listeleme

Ayrıca tüm docker volumes bir docker host. Bu komutla ilgili daha fazla ayrıntı aşağıda verilmiştir -

Sözdizimi

docker volume ls

Seçenekler

Yok

Geri dönüş değeri

Komut, tüm ciltlerin çıktısını alacaktır. docker host.

Misal

sudo docker volume ls

Çıktı

Yukarıdaki komutun çıktısı aşağıda gösterilmiştir -