Bloğa geri dön

CentOS 7 üzerinde Docker Compose Kurulumu

CentOS 7 üzerinde Docker Compose Kurulumu

Dockerlaştırma, yazılım sektöründeki dağıtım ve otomasyon sürecini yeniden tanımladı. Başlangıcından beri, Docker ekibi, otomatik dağıtımı sorunsuz hale getirmek için sürekli çaba gösterdi. Konteynerleştirme teknolojisi yalnızca hızlı uygulama geliştirmeyi ve verimliliği sağlamakla kalmaz, aynı zamanda zamandan ve yoğun çabalardan da tasarruf sağlar. Çoklu konteyner uygulamalarını orkestre etme, tanımlama ve çalıştırma gibi rakipsiz işlevler, Docker'ı geliştiriciler için favori bir seçim haline getiriyor.

Docker Konteynerleri ve İmajları

Docker'ı daha iyi anlamak için derinlemesine incelemeden önce, temel bilgileri tazelemek önemlidir. Docker ile çalışma deneyiminiz yoksa, nasıl çalıştığını anlamak zor olabilir. Bu bölümde, yeni başlayanlar için temel olan birkaç kavramı tanımlayacağız. Bu kavramlara aşina olduğunuzu düşünüyorsanız, bu bölümü atlayıp bir sonraki bölüme geçebilirsiniz. Ayrıca, temel Docker kavramlarını açıklayan kapsamlı kılavuzumuza.

  • Docker İmajları

Docker imajları, salt okunur dosyalardan oluşan bir koleksiyondur. Docker imajlarını bir kez oluşturduktan sonra, silinmesine izin verilmesine rağmen bunları değiştiremezsiniz. İhtiyaçlarımıza göre bir veya daha fazla Docker konteyneri oluşturmak için bir Docker imajı kullanırız. Sisteminizde çalışan imajların sayısını kontrol etmek için şu komutu kullanın:

When you pull images from a remote registry like Docker Hub gibi uzak bir kayıt defterinden imaj çektiğinizde, dosya ve klasörleri indirmiş olursunuz. Bir imaj çekmek için şu komutu kullanın:

  • Docker Konteynerleri

Docker imajları, Docker konteynerlerinin taslağıdır. Teknik olarak bir Docker konteyneri, bir Docker imajının örneğidir. Bir Docker imajını ebeveyn gibi düşünürseniz, Docker konteyneri de çocuktur. Yalnızca bir kez oluşturabileceğiniz Docker imajlarının aksine, tek bir imaj kullanarak birden fazla konteyner oluşturabilirsiniz. Sisteminizde çalışan imajların listesini kontrol etmek için şu komutu kullanın:

Bir konteyner çekmek için aşağıdaki komutu kullanın:

  • Docker İmajları ve Konteynerleri Nasıl Çalışır?

Docker imajları ve konteynerleri, Docker'ın potansiyelini açığa çıkarmak için el ele çalışır. Tek bir konteyner, run komutu aracılığıyla Docker imajı kullanılarak oluşturulur. Bir Docker konteyneri oluşturduğunuzda, Konteyner Katmanı (Container Layer) olarak bilinen yeni bir katman oluşturulur. Yeni oluşturulan katman, uygulamayı ve bağımlılıklarını içerir. Oluşturduğunuz her konteynerin farklı bir okunabilir/yazılabilir Konteyner Katmanı vardır ve Docker konteynerinde yapılan tüm değişiklikler otomatik olarak Konteyner Katmanına yansıtılır. Unutmayın, bir konteyneri silmeyi seçerseniz Konteyner Katmanını da kaybedersiniz.

Docker Compose'a Merhaba Deyin

Docker Compose, tüm Docker konteynerlerinizi tek bir YAML dosyasında yapılandırmanıza ve orkestre etmenize olanak tanıyan bir konteyner yönetim aracıdır. Konteynerler arası bağlantılar ve birimler (volumes) oluşturmak, bunları başlatmak ve durdurmak bu araçla çok daha kolay hale gelir.

  • Docker Compose Ne İşe Yarar?

Basitçe söylemek gerekirse, Docker Compose çakışmaları ve organizasyonel sorunları ortadan kaldırarak karmaşık görevleri kolaylaştırır. Kullanıcıların farklı Docker konteynerlerini merkezi olarak yönetmelerine olanak tanır. Başka bir deyişle, tüm hizmetleri tek bir büyük konteynerde toplamak yerine, Docker Compose bir hizmeti birden fazla hizmete bölerek kullanıcıların bunlara zahmetsizce erişmesini ve yönetmesini sağlar.

Bu kılavuzda, CentOS 7 üzerinde çoklu konteyner uygulamalarını yönetmek için Docker Compose'un güncel sürümünü yükleme adımlarında size yol göstereceğiz. Ayrıca, yazılımı başarıyla kullanmak için ihtiyacınız olan bazı temel komutların üzerinden geçeceğiz.

  • How to Use Docker Compose

Docker Compose'u kullanmak, yeni başlayanlar için bile son derece kolaydır. Docker Compose'un içerdiği üç adımlı sürece göz atalım:

1. Build: İlk olarak, proje ihtiyaçlarınıza göre Dockerfile içinde imajlar oluşturun veya belki de kayıt defterinden çekin.

2. Define: Ardından, tüm bileşen hizmetlerini compose.yml dosyasında tanımlamanız gerekir.

3. Run: Bileşenleri tanımladıktan sonra, docker-compose komutunu kullanarak çalıştırma zamanı gelmiştir.

Gereksinimler

CentOS sunucunuza Docker Compose kurulumuna geçmeden önce şunlara sahip olduğunuzdan emin olun:

Artık hazırsınız. Ardından, CentOS 7'ye Docker Compose kurmak için aşağıdaki adımları takip edin.

Adım 1: Docker Compose Kurulumu

Docker Compose'un en güncel sürümünü edinmek için şu belgedeki talimatları izleyin: Docker belgeleri ve ikili dosyaları şuradan indirin: Docker’ın GitHub deposu. Aşağıdaki komutu çalıştırarak yazılımın en son sürümüne sahip olduğunuzu kontrol edin:

İkili dosyanın çalışmasını sağlamak için aşağıdaki izinleri ayarlayın:

Ardından, kurulumun başarılı olup olmadığını kontrol etmek için sürümünüze bakın:

Aşağıdaki kod kurulu sürümü yazdıracaktır:

docker-compose --version

Ardından, kurduğunuz Docker Compose'u kullanarak bir “Hello World” örneği çalıştırabilirsiniz.

Adım 2: Bir Konteyner Çalıştırmak için Docker Compose Kullanımı

Genel Docker kayıt defteri olan Docker Hub'da, gösterim ve test amacıyla kullanılabilecek bir “Hello World” imajı bulunmaktadır. Bu imaj, çok minimum bir yapılandırmayla Docker Compose kullanarak bir konteynerin nasıl çalıştırılacağını gösterir. İlk olarak, YAML dosyamız için bir dizin oluşturmanız gerekir:

Ardından, bu dizine geçin:

Ardından, tercih ettiğiniz metin düzenleyiciyi kullanarak YAML dosyasını oluşturun. Bu kılavuzda Vi:

Ekleme moduna geçmek için i tuşuna basın, ardından bunu dosyaya yazın:

Konteyner adına ilk satır dahil edilecektir. İkinci satır, programa konteyneri oluşturmak için hangi imajı kullanması gerektiğini söyler. docker-composeup komutu yazdığınızda, kullanılabilir olup olmadığını kontrol etmek için hello-world adında yerel bir imaj arayacaktır. Ekleme modundan çıkmak için ESC tuşuna basın. Ardından, dosyayı kaydedip çıkmak için :x yazın ve ENTER tuşuna basın. Makinenizdeki imajları manuel olarak kontrol etmek için docker images komutu kullanılabilir:

Hiç yerel imaj olmadığında yalnızca sütun başlıkları görünür:

Docker Compose on CentOS 6

Konteyneri oluşturmak için hala /hello-world dizinindeyken:

Komutu ilk kez çalıştırdığınızda ve hello-world adında yerel bir imaj bulunmadığında, bu imaj Docker Hub deposundan indirilecektir:

sudo docker-compose up

Kurulumun çalıştığından emin olmak için Docker Compose imajı çeker, bir konteyner oluşturur, onu bağlar ve hello programını yürütür:

hello program

Bundan sonra, yapılanların açıklamasını içeren bir çıktı görüntülenir:

Docker Compose on CentOS 3

When hello görevini tamamladığında, konteyner kapatılacak ve komut artık konteynerde çalışmayacaktır. Etkin işlemlere bakıldığında sütun başlıkları görüntülenecektir. Ancak, şu anda çalışmadığı için hello-world konteyneri listelenmeyecektir:

sudo docker ps

Yalnızca mevcut olanları değil, tüm konteynerleri görmek için -a bayrağını kullanın:

Docker Compose 2

Bir konteyner çalıştırmayı denediğinize göre, bazı temel Docker Compose komutlarını öğrenmeye geçebilirsiniz.

Adım 3: Docker Compose Komutları

Docker Compose'a başlamanızı sağlamak için bu bölümde docker-compose aracı tarafından sağlanan temel komutlar ele alınacaktır. docker-compose dizin bazında çalışan bir komuttur. Her konteyner için bir dizin ve dizin başına bir docker-compose.yml dosyası oluşturarak, aynı bilgisayarda birçok Docker konteyner grubunu çalıştırabilirsiniz.

Şimdiye kadar Docker Compose'u kendi başınıza çalıştırıyordunuz. Şuna basarak kapatabilirsiniz: Ctrl-C. Bu, terminal penceresinin hata ayıklama mesajlarını görüntülemesini sağlar. Ancak, canlı ortamda çalışırken docker-compose aracını bir servis olarak çalıştırmanız önerilir. -d seçeneği bunu gerçekleştirmenin basit bir yolu olarak kullanılabilir:

Şimdi, docker-compose arka plana geçer. Docker konteyner grubunuz (durdurulmuş veya çalışan) aşağıdaki komutla yönetilebilir:

Bir konteynerin State değeri, durdurulmuşsa Exited olarak bildirilecektir, aşağıdaki örnekte görüldüğü gibi:

Docker Compose on CentOS 5

Şu anda çalışan bir konteyner ise şunu gösterecektir:

Docker grubunu başlatmak için kullandığınız docker-compose.yml dosyasıyla aynı dizindeki tüm çalışan Docker konteynerlerini sonlandırabilirsiniz:

Note: İşlemleri daha zorunlu bir şekilde sonlandırmanız gerekirse, docker-compose kill komutu da mevcuttur.

Bazı durumlarda, Docker konteynerleri eski verilerini içeride saklayabilir. Sıfırdan başlamak istiyorsanız, konteyner grubunuzdaki tüm konteynerleri kaldırmak için rm komutunu kullanın:

Bu komutlardan herhangi birini, Docker konteynerinin ve .yml dosyasının bulunduğu dizinden farklı bir dizinde çalıştırmak bir hata mesajıyla sonuçlanacaktır:

Bu bölümde, Docker Compose ile konteynerleri yönetmenin temellerini ele aldık. Bahsedildiği gibi, konteynerleriniz üzerinde ek kontrole ihtiyaç duyarsanız, bir sonraki bölümde Docker dosya sistemine erişebilir ve konteyner içindeki bir komut satırından komutlar çalıştırabilirsiniz.

Step 4: Access the Docker Container Filesystem

Bir konteynerde komut satırı çalıştırmak ve konteynerin dosya sistemine erişmek, bir komut satırı aracı olan docker exec ile mümkündür. Örnek olarak, “Hello World” uygulamasını çalıştırın ve docker exec komutunun tamamlanmasının ne kadar sürdüğünü görün. Bu eğitim için, Docker Hub image of Nginx kullanılabilir. nginx adında yeni bir dizin oluşturun ve içine girin:

Şimdi bir docker-compose.yml dosyanız olmalıdır, bunu bir metin düzenleyicide açabilirsiniz:

Ardından, dosyaya aşağıdakileri ekleyin:

Uygulamadan çıkma zamanı geldi. Nginx konteynerini arka planda başlatmak için aşağıdaki komutu kullanın:

Docker Compose on CentOS 1

Docker Compose, Nginx imajını indirecek ve konteyneri arka planda çalıştıracaktır. Devam etmek için konteynerin CONTAINER ID bilgisini girmeniz gerekecektir. Şu anda çalışan tüm konteynerleri aşağıdaki komutla görüntüleyebilirsiniz:

Aşağıdakileri göreceksiniz:

 Docker Compose on CentOS 4

Eğer bu konteynerin içindeki dosya sistemini değiştirmek isteseydiniz, docker exec kullanarak, konteyner içinde bir kabuk (shell) oluşturmak için konteynerin benzersiz kimliğini (bu durumda, f139d0d78ca7) kullanırdınız:

sudo docker exec -it

Etkileşimli bir terminal -t seçeneği kullanılarak açılabilir, /bin/bash ise konteynere bir bash kabuğu sağlar. Bundan sonra konteyner için göreceğiniz bash istemi şudur:

Konteynerinizin içinde bir komut istemi bulacaksınız. Bir veri biriminin parçası olarak kaydedilmiş bir dizinde çalışmadığınız sürece, konteyneri yeniden başlatmak yaptığınız tüm değişikliklerin üzerine yazacaktır. Linux komut satırı araçlarıyla çalışmaya alışıksanız, çoğu Docker görüntüsünün en temel Linux kurulumları kullanılarak oluşturulduğunu bilmelisiniz.

Sonuç

CentOS 7 üzerinde çoklu konteyner uygulamalarını yönetmek için Docker Compose’un güncel sürümünü yükleme adımlarında size rehberlik ettik. Docker Compose’un çok sayıda konteyneri aynı anda başlatma ve kapatma yeteneği etkileyicidir. Şablonlardan uygulamalara geçmek dakikalar alır. Bu nedenle, işiniz aynı anda birden fazla konteyner çalıştırmayı gerektiriyorsa, Docker Compose kullanmaya devam etmek harika bir seçenektir. Yine de bu, her duruma uyan tek bir çözüm değildir. Özel ihtiyaçlarınıza bağlı olarak daha iyi bazı seçenekler de bulabilirsiniz, örneğin, Kubernetes.

Docker Compose’un gücünü daha fazla keşfetmek için şu adresteki eğitimlere başvurabilirsiniz: blogumuz:

Keyifli Çalışmalar!

author

Hark Labs

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.