Bloğa geri dön

Ubuntu 20.04 üzerinde Docker Veri Hacimleri ile Çalışmak

Ubuntu 20.04 üzerinde Docker Veri Hacimleri ile Çalışmak

Giriş

Docker Veri Birimleri, uygulamalarınızı konteynerleştirirken önemli bir kavramdır. Bu kavramı bilmek, güvenilir kalıcılık ve veri yönetiminin yanı sıra konteynerleştirilmiş uygulamanızdan en iyi deneyimi elde etmenizi sağlamak için hayati önem taşır. Ancak, bu kavram önemli olmakla birlikte, birçok geliştirici için kafa karıştırıcı ve karmaşıktır. Geliştiricilerin ve DevOps uzmanlarının Docker Veri Birimlerini nasıl kuracaklarını anlamaları, doğru kullanımlarını kavramaları, farklı veri birimi türlerini ve uygulamaları için hangi türü seçeceklerini bilmeleri önemlidir.

Bu eğitim, Docker Veri Birimlerinin kavramını ve kullanımını açıklamaya odaklanmaktadır. Bu eğitimi tamamladıktan sonra, her türlü Docker Veri Birimini kurma ve bunlarla çalışma konusunda uzmanlaşmış olacaksınız.

Önkoşullar

Bu eğitimi takip etmek için aşağıdaki öğelere sahip olmanız gerekir:

  1. Ubuntu kurulu olmalıdır. Hızlı bir referans için Ubuntu 18.04 sunucunuzu nasıl kurarsınız eğitimimize göz atın.
  2. Sudo yetkilerine sahip Ubuntu kullanıcısı. Özellikle Linux'a aşina değilseniz bu adım karmaşık olabilir. Detaylı bir rehber için Linux Sudoers Dosyasını Yapılandırma belgesini okuyun.
  3. Docker Ubuntu üzerinde kurulu olmalıdır. Ubuntu'nuza Docker kurmak için Genel bulutta Ubuntu üzerinde Docker nasıl kurulur & çalıştırılır blogumuzu takip edebilirsiniz.

Bu eğitim Ubuntu üzerinde Docker yönetimine odaklansa da, docker komutları, Docker kurulu olan tüm işletim sistemlerinde geçerlidir.

Docker Konteynerlerinin Nasıl Çalıştığını Anlamak

Docker Veri Birimlerini tam olarak anlamak için Docker konteynerlerinin nasıl çalıştığını bilmeniz gerekir. Bu bölümde, Docker'ı yeni kullanmaya başlayanlar için temel bilgilere değiniyoruz. Docker'ın nasıl çalıştığını biliyorsanız veya deneyimli bir Docker kullanıcısıysanız, bu bölümü atlayabilir ve veri birimleriyle çalışmaya başlayabilirsiniz.

Docker konteynerleri, Docker platformunu kurarak ana işletim sistemi üzerinde bir uygulamanın yürütülmesini sağlar. Docker platformu ana işletim sistemine kurulduğu için, ana makine ile konuk uygulama arasında bir soyutlama oluşur. Sanal bir makineden farklı olarak, bir Docker konteyneri Linux çekirdeğini ana işletim sistemiyle paylaşır. Docker, ana makinenin üzerine kurulacak ek bir işletim sistemine ihtiyaç duymadığından, Docker uygulamaları hafiftir ve o ana makinede Docker kurulu olduğu sürece tüm ana makinelerden erişilebilir.

Ek bir konuk işletim sistemi olmadığı için Docker platformu kaynakları ana makine ile paylaşır. Docker uygulamasını başlatmak hızlıdır ancak kaynakları paylaşmanız gerektiğinde karmaşıklık ortaya çıkar. Docker'ın veri kalıcılığı için kendi belleği veya depolama alanı yoktur. Bu kaynakların ana makineden gelmesi gerekir. Sanal makineleri kullanmaya alışkın kişiler, kaynakların bu şekilde paylaşılması ve yönetilmesi sürecini zor bulurlar. Doğru bilgiye sahip olmamak, beklenmedik ve istenmeyen sonuçlara yol açabilir. Bu eğitim Docker ekosistemine aşina olduğunuzu varsaysa da, hızlı bir hatırlatma için detaylı eğitimimiz olan Docker Nedir? Docker Ekosistemine Genel Bir Bakış belgesine göz atmaktan çekinmeyin.

Docker Veri Birimlerini Kullanarak Verileri Kalıcı Hale Getirme

Docker ile çalışırken, doğrudan içinde bir veri birimi oluşturamazsınız. Bu nedenle, verileri depolamak için ona bağlı bir veri birimi olan bir Docker veri birimi konteyneri oluşturmamız gerekir. Docker uygulamamızı bu veri birimi konteynerine bağlamak için Docker’ın --volume-from komutunu kullanarak konteyneri alır ve uygulamamıza bağlarız.

Süreci adım adım inceleyeceğiz:

  1. İlk olarak, aşağıdaki komutu çalıştırarak my-container adında yeni bir konteyner oluşturun:
    Docker Data Volumes 1 docker create my-container
    Bu, /tmp klasöründe yeni bir konteyner oluşturacaktır. Klasör dizinini gerektiği gibi değiştirebilirsiniz.
  2. Artık veri konteyneriniz hazır olduğuna göre, --volume-from bayrağına sahip yeni bir Ubuntu konteyneri çalıştırıp ardından bash komutunu çalıştırarak içine yazabilirsiniz. tmp dizini ana makinemizin /tmp klasöründe saklanacaktır:
    Docker Data Volumes 2 Run docker container
    The -t komut satırı seçeneği, konteynerin içinden bir terminal çağırır. -i bayrağı bağlantıyı etkileşimli hale getirir. Ubuntu konteynerinin bash komut satırında, /tmp:
  3. Son olarak, exit komutunu çalıştırarak bu bash'ten çıkın. Ardından, aşağıdaki komutu çalıştırın:
    Docker Data Volumes 3 New container sample file
    Bu dizinde sample_file dosyanızı bulacaksınız. Belirtilecek birim sayısında herhangi bir sınırlama yoktur. --volumes-from bayrağını kullanarak istediğiniz kadar birim ekleyebilirsiniz. Ayrıca istediğiniz kadar veri birimi konteyneri de oluşturabilirsiniz.

Ana Makine ile Docker Konteyneri Arasındaki Verilere Erişme

Sanallaştırma konusunda deneyimli okuyucular için bu seçenek, sanal makinelerdeki paylaşılan klasör seçeneğine benzer. Burada bir data-only konteyneri oluşturmak yerine, Docker uygulamamızı Docker imajını kullanarak çalıştırırız ve dizinlerinden birini ana sistemdeki bir dizinin içeriğiyle geçersiz kılarız.

Yaygın bir senaryo, günlük (log) dosyalarını ana makineye kaydetmektir. Bu, makinenin içine girmek zorunda kalmadan bu dosyaları gerektiği gibi analiz edebilmemiz için gerekli olabilir. Bu senaryo için, Docker Nginx image kullandığınızı ve günlük dosyalarını ana makinede depolamak istediğinizi varsayalım. Nginx Docker imajı günlükleri /var/log/nginx dizinine yazar, ancak bu /var/log/nginx Docker Nginx konteynerinin içindedir. Dolayısıyla, bu konuma ana makineden erişilemez.

Amacımıza ulaşmak için, ana makine ile Docker Nginx imajı arasında günlükleri depolamak üzere paylaşılan bir klasör oluşturmamız gerekir. Aşağıda bu süreci kolay, adım adım bir kılavuzla açıklayacağız:

  1. İlk olarak, ana makinenizde günlükleri depolamak istediğiniz bir dizin oluşturun:
    Ardından, aşağıdaki komutu çalıştırarak konteynerinizi başlatın:
    Docker run nginx container
  2. Bu run komutu birkaç argüman kabul eder, bu yüzden daha iyi anlamak için bunu parçalara ayıralım:
    • -p 5000:80: Bir port yönlendirmesi kurun. Nginx konteyneri varsayılan olarak 80 portunu dinler ve bu, Nginx konteynerinin 80 portunu ana sistemdeki 5000 portuna eşler.
    • -d: Süreci ayırın (detach) ve arka planda çalıştırın.
    • -v ~/my-nginxlogs:/var/log/nginx: Nginx konteynerinin içindeki /var/log/nginx dizinini, ana makinedeki /my-nginxlogs dizinine bağlarız. Bu : ana makinenin yolunu konteyner yolundan ayırır. Ana makine yolu her zaman önce gelir.

Artık Nginx konteynerimiz çalıştığına göre, ilk olarak web tarayıcınızı açıp şu URL'yi çalıştırarak Nginx sunucusunun ana makinemizin 5000 portunda hizmet verip vermediğini kontrol edin: http://localhost:5000. Karşılama sayfası göründüğünde, Nginx sunucunuz hazırdır ve /var/log/nginx klasöründe günlükler oluşturuyordur.

Ana makinenizin /my-nginxlogs klasörünü açarsanız, Docker Nginx konteynerinden gelen günlük dosyalarını burada göreceksiniz. Nginx konteyneri çalışırken ana makinedeki /my-nginxlogs klasöründe değişiklik yaparsanız, değişiklikler konteynerin /var/log/nginx klasörüne de yansıtılacaktır.

Sonuç

Bu eğitimde, Docker Veri Birimlerini (Data Volumes) anlamaya yönelik kapsamlı bir yaklaşım benimsedik. Uygulamanız için birimler oluşturmaya, ana makine ile Docker konteyneri arasında veri paylaşımına, veri türlerine ve verileri kalıcı hale getirmeye değindik. Bu, konteynerleştirilmiş uygulamalarınızda verileri kalıcı hale getirmenize ve uygulamanın durumunu ve yapılandırmasını yönetmenize yardımcı olacaktır.

Docker hakkında daha fazla bilgi edinmek için blogumuzdaki:

Keyifli Hesaplamalar!

author

Pranay Kapgate

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.