Docker Bölüm 1: Mimari

Genelde yazılarıma mimari ile başlamam biliyorsunuz; fakat Docker’ı uzun uzun anlatmayacağım, çünkü oldukça fazla yapıldı. Herhangi bir yerden Docker’ın ne olduğunu ve ne işe yaradığını rahatlıkla öğrenebiliyoruz artık. Bu yüzden benim gibi detaycı bir karakter iseniz kolay ulaşamayacağınız bilgileri sizin için vermek bana daha cazip geldiğinden bir istisna olarak Docker mimarisinden başlıyorum. Docker Mimarisi Docker […]

Docker Bölüm 2: Komutlar

Docker Kontrol Version Docker Client ve Deamon hakkında bilgi almak için kullanılan komuttur. İşletim sisteminde:

çalıştırdığınızda size Docker hakkındaki bilgiyi verecektir. Info Docker hakkında detaylı bilgi almak için kullanılır.

Debug Yukarıdaki çıktıca Client için debug mode’un kapalı olduğunu gördük, açalım:

Help Bir komut hakkında detaylı bilgi almak için komuttan hemen sonra –help […]

Docker Bölüm 3: Docker Image

Birden çok katmandan oluşan ve Docker container’da için oluşturulmuş dosyalardır. Amaca yönelik, container’lar için tasarlanmış, önceden oluşturulmuş kalıplardır.   Docker Image Özellikleri Container oluşturmak için salt okunur şablonlardır. Bir manifest ve farklı obje dosyalarından oluşur. Manifest dosyasında indirilecek tüm dosyaların bilgileri saklanır. Container silinmeden image silinemez. Bir image silinmek istenirse, öncelikle bu image ile bağımlı […]

Docker Bölüm 4: Dockerfile

Bir image oluşturmak için var olan tüm katmanların madde madde açıklandığı ve tüm işlemlerin detaylıca belirtildiği text dosyalarıdır. Dockerfile, YAML adı verilen, insanlar tarafından kolayca okunup anlaşılabilir bir dil ile kodlanmaktadır. Satırlardan meydana gelir ve her bir satır bir işlemi gösterir. Dockerfile Dosya Yapısı Dockerfile için kullanılabilecek komutlar: https://docs.docker.com/engine/reference/builder/ FROM Hangi image dosyasının referans alınacağını […]

Docker Bölüm 5: Network

Docker sistemimize ilk kez kurulduğu zaman docker0 adında varsayılan olarak bridge network tanımlaması yapılmakta ve gerekli konfigürasyon oluşturulmaktadır. Biz bir değişiklik yapmadığımız sürece docker0 default olarak kullanılır, container’lar da bu switch sayesinde hem birbirleri ile hem de dış dünya ile iletişim sağlayabiliyorlar. Container’ların birbirleriye veya dış dünyayla iletişim kurabilmesi için 2 farklı standart geliştirilmiştir. CNM […]

Docker Bölüm 6: Volume

Container’lar, çalışma mantığı olarak ayağa kaldırıldıktan sonra işlerini yapar ve sonra kapanırlar. Container’lar tamamen izole oldukları için, içlerinde yapılan herhangi bir şey kalıcı olarak saklanmazlar ve silinince de içlerindeki bilgiler de tamamen silinirler. Kritik öneme sahip verilerin saklanacağı container’ların ise bu şekilde kaybedilmemesi gerekir. Örneğin bir üzerinde database bulunan bir container’ımızdaki bilgilerin kaybı bizim için […]

Docker Bölüm 7: Docker Compose

Çok container’lı karmaşık servislerin tanımlanmasını ve çalıştırılmasını sağlayan araçtır. Docker Compose ile çoklu container, gerekli servisler, volume, network vb. kontolünü yapabilir ve yönetebiliriz. Temelde Docker Compose, kullanacağımız her servis için Dockerfile dosyasını kullanır, sonrasında volume ve network gibi ayarları da Docker Compose üzerinde yaparız. Yazım dili YAML’dır. Dosya uzantısı yaml veya yml şeklindedir. Docker Compose […]

Docker Bölüm 8: Docker Swarm

Container mimarisinde çalışan servisleri yönetmek, ölçeklendirmek ve servislerin kesinti olmadan devamlılığını sağlamak için kullanılan cluster yönetim ve orkstrasyon aracıdır. Docker Host üzerinde çalışan container’ler, Host’un fail olmasından sonra ayakta kalamaz ve servisler kesintiye uğrar. Hem high availibility hem ölçeklendirme hem de yedeklilik sağlayabilmek için Docker Host sayısını artırmalı, bunları cluster haline getirmeli ve yönetimini sağlıklı […]