Ana sayfa » Docker ile ilk DevOps Senaryomuzu Oluşturalım

Docker ile ilk DevOps Senaryomuzu Oluşturalım

by ozarci
İlk DevOps Senaryomuzu Oluşturalım

Kendimizi yeni bir DevOps ekibinde düşünelim; 3 farklı dilde Java, Python ve JavaScript’te bir Api oluşturmamız isteniyor, bu uygulamaların tüm imajlarına sahipsiniz ve bunları hızlı bir şekilde QA ortamına dağıtmak istiyorsunuz, temel bilgiye sahipsiniz ve terminalin (cmd) başına geçiyorsunuz, hatırlarsanız burada docker sürüm kontrolünü mutlaka yapmanız gerektiğini belirtmiştik, terminali açıyoruz ve sürüm kontrolümüzü yapıyoruz:

docker --version 

Sürüm kontrolü yaptıktan sonra, sürümümüzün 19+ olduğunu görüyoruz, bu konuda her şey yolunda

Öncelikle Python uygulamasını deploy istediğimizi varsayalım, terminale şu satırı yazalım (bu kodları elinizde tek tek yazmanızı öneririm, zira el alışkanlığı ileride çok işinize yarayacak)

docker run -p 5000:5000 ozanzarci/hello-world-python:0.1

Bu komut satırını yazdıktan sonra docker önce bu imajı local’de, yani bilgisayarınızda arayacaktır, daha önce indirmediğiniz için dockerhub’a bağlanacak ve imajı indirmeye başlayacaktır. İnternet hızınıza bağlı olarak yaklaşık 10 saniye sürecektir.
Aşağıdaki gibi bir ekran çıktınız olacak:

Başarılı bir şekilde imajımızı indirdik ve bir container olarak ayağa kaldırdık, şimdi local makinamızda bu contanier adresine gidip run durumda olduğunu kontrol edeceğiz, herhangi bir browser açın ve adres satırına localhost:5000 yazın.
Aşağıdaki ekranı görüyorsanız, Container başarılı şekilde ayakta ve uygulamanızı run ediyor durumdadır.


Saniyeler içinde Python ile yazılmış bir uygulamayı çalıştırdığınızı farketmişsinizdir. Container yapısı, uygulama hangi dilde yazılmış olursa olsun, uygulamanın çalıştırılacağı ortamı kurmadan container içinde uygulamanızı run etmenizi sağlar. Bilmeniz gereken tek şey docker imajınızın hangi adreste olduğu.

Şimdi de ikinci imajımızı ayağa kaldıralım; bir java imajı çalıştıralım.
Bunun için yukarıda yaptığımız gibi terminal (cmd) ekranına java imajımızın olduğu path’i yazacağız, öncelikle ekranımızı temizleyelim, bunun için cls yazıp enter’a basalım, ardından imaj satırımızı yazalım: (satırı elimizde tek tek yazalım, el alışkanlığı hatırlatmamızı tekrar yapmış olalım)

docker run -p 5001:5000 ozanzarci/hello-world-java:0.1

Yine aynı şekilde önce local makinada arayacak ve bulamadığı için dockerhub üzerinden imajımızı indirecek. Yukarıdaki kod satrında bir farklılık farkettiniz mi?
İk imajımızı 5000:5000 olarak çağırmışken, bu sefer 5001:5000 olarak çağırdık, sizce bunun sebebi ne olabilir?
Sebebi: aynı portta birden çokcantainer ayağa kaldıramayız.
Terminale satırı girip Enter tuşuna bastığınızda aşağıdaki gibi bir ekran çıktısı alacaksınız, öncekinden daha uzun olacak ve yine internet hızınıza bağlı olarak yaklaşık 20-30 saniye sürecek.


Şuan iki container de ayakta, birinde Python, diğerinde Java uygulamaları run durumda.
Şimdi yeni bir browser açın ve adres satırına bu sefer localhost:5001 yazın; Java mesajı göreceksiniz, localhost:5000 yazdığınızd da Python mesajını göreceksiniz; şuan 5000 portunda Python, 5001 portunda Java Container’larımız run durumda.

Üçüncü imajımızı da indirmeye başlayalım (eller ısınmıştır artık), bu indireceğimiz imaj bir Nodjs uygulaması olacak, şimdi yeni bir terminal ekranı açalım ve aşağıdaki satırı girelim:

docker run -p 5002:5000 ozanzarci/hello-world-nodejs:0.1

Yine aynı şekilde önce local makinada arayacak ve bulamadığı için dockerhub üzerinden imajımızı indirecek. Çakışma olmaması için port numaramızı 5002 verdik, çünkü 5000 ve 5001 portlarımızda diğer Containerlarımız run durumdalar.
İnternet hızınıza göre 10 saniyede container ayağa kalkacaktır, hemen yeni bir browser sekmesi açıp adres satırına localhost:5002 yazalım; Javascript mesajını görüyorsanız 3. Container’ınız da başarılı şekilde run durumda demektir.
Şuan 3 farklı dilde uygulamamız 3 farklı portumuzda run durumdalar.

Bir sonraki yazımızda image, tag, repostry, dockerhub gibi kavramları yakından inceleyeceğiz.

İlgini Çekebilir

0 0 vote
Article Rating
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x