Windows Containers – Container Images

By | 05 October 2017

Bir önceki bölümde Windows Server Container mimarisine giriş yapmıştık. Genel mimariyi, container tiplerini, container hostları ve container management’ı için gerekli olan Docker engine’i ve Docker client’ından bahsetmiştik.

Bu bölümde de container imajlarını ele alacağım.

Container dosya sisteminde yada registry’sinde yapılan tüm modifikasyonlar (Uygulama kurulumu vb.) sandbox içerisine yazılır. Sonrasında yapılan bu değişiklikleri de kapsayan bir container imajına ihtiyaç duyabilirsiniz. Çünkü container stop edildiğinde sandbox üzerinde yapılan değişiklikleri ya kaybedersiniz, yada bunu yeni bir container imajı olarak kaydedersiniz.

Örneğin windows server core OS bir işletim sistemine sahip container deploy ettiniz. Ardından bu container içerisine MySQL kurulumu gerçekleştirdiniz.Yapılan tüm değişiklikleri bir imaj haline getirirseniz daha sonradan oluşturacağınız container’lar direk bu seviyeden deploy edilebilecektir. Bu oluşturulan yeni imaj diğerinden farklı olarak sadece yapılan mysql kurulumu değişikliğine sahip olacaktır ve container OS imajının en üstünde farklı bir katman olarak yer alacaktır.

Sandbox terimini biraz daha açıklamak istiyorum. Yukarıdaki resimden de anlaşılabileceği gibi container OS imajları kullanılıp yeni bir container oluşturulduğunda Bu container üzerinde yapılacak tüm yazma işlemleri sanbox’a capture edilir. Bu işlemler temel olarak dosya sitemini modifiye etme, registry’de değişiklik yapma, yazılım kurulumu vb. Işlemler olabilir.

Container’lar imajlardan deploy edilirler. Bu sebeple container os image burada container içerisindeki ilk katmandadır. Bu katman container’a OSE(operating system environment) sağlamaktadır. Buradaki önemli nokta şudur. Container OS Image hiç bir şekilde modifiye edilemez. Her container bu OS imajlarından kendisi için bir view oluşturur ve değişiklikleri Sandbox’a capture eder. Container OS katmanı MS tarafından sağlanır ve maintain edilir. Bu OS katmanı bir registry içerisinde tutulur.

Aşağıdaki tablo Container Host ve üzerinde çalışabilecek container imajlarını göstermektedir.

Oluşturulan container image’ları çoğu zaman local repository’lerde tutulurlar ve bu imajlar container host’lar tarafından bir çok kez kullanılırlar. Tabi local repository’lerin yanında public yada private repository’ler de vardır. Bu repository’ler yardımı ile oluşturmuş olduğunuz container imajları farklı container host’lar tarafından kolaylıkla kullanılabilir durumdadır.

Public repository’ler arasında en yaygın kullanılanı Docker Hub’dır. Bu site üzerinde Kendi private repository’lerinizi oluşturabileceğiniz gibi, public repository’lerde bulunan container imajlarından da faydalanabilirsiniz.

DockerHub’a erişmek için aşağıdaki linki kullanabilirsiniz.

https://hub.docker.com/

Siteye erişip arama bölümüne aradığınız herhangi bir uygulamayı yazdığınızda eğer uygulamanın hazır yüklenmiş olduğu bir imajı var ise hemen görüntülenecektir. (Örneğin ben nano server yazdım)

Ardından details sekmesine tıklayarak bu imajı nasıl download edeceğinize ilişkin yönergelere erişebilirsiniz.

Container imajları ile alakalı bütün bileşenleri özetlemeye çalıştım. Umarım anaşılır olmuştur. Bir sonraki bölümde yine container’lar ile devam edeceğim.

Görüşmek üzere.

Fırat

Leave a Reply