Docker Katmanlı Dosya Sistemi

Docker UFS (Union File System) yapısını kullanır.

Docker File System

c3yh4n/ilkuygulama

 

Merhaba.sh uygulamasının çalışacağı docker image’i oluşturma;

Öncelikle temel bir gnu/linux dağıtımının image hali gereklidir. (GNU/Linux işletim sistmeminin kernel olmayan hali)

Uygulaam bu image içine kopyalanır.

Container başlatıldığında çalışması için uygulama ayarlanır. (Bu image kullanılarak bir container oluşturulursa bu komut çalışsın ayarının yapılması)

Tüm bunlar bir araya geitirldikten sonra bir tag (isim gibi düşünülebilir) atanır. Ardından tüm bu katmanlar bir bütün halinde paketlenir. Bu pakete image adı verilir.

Bir image dosyası oluşturulduktan sonra bu image kullanılarak container oluşturulmak istenildiğinde, docker image’i sadece okunabilir halde tutuyor. Üstüne yazılabilir bir katman ilave ediyor.

Docker bir image dosyası kullanarakbir container oluşturduğunda image dosyasının kopyasını alıp bundan bir container oluşturmaz. Bunun yerine bu image read-only olarak yüklenir ve bunun üstüne boş bir yazılabilir katman ekler. Container böyle çalıştırılır. Container içinde yapılan tüm değişiklikler bu yazılabilir katmana yazılır ve sadece o container için geçerli olur.

Aynı image kullanılarak başka bir container oluşturulduğunda yine bu image sadece okunabilir olarak tutulur. Yeni container için yeni bir yazılabilir katman oluşturulur. Yani her container’ın kendine ait yazılabilir bir katmanı olur. Tüm değişiklikler bu katmanda tutulur.

Çalışmayan containerların sistemden temizlenmesi : docker container prune

Sistemdeki image’leri listeleme : docker image ls

Sistemdeki tüm image dosyalarını silme : docker image prune -a

Docker Hub üzerinden image Çekme : docker image pull ubuntu

docker image pull c3yh4n/ilkuygulama

Docker Container Lifecycle

Bir uygulama dağıtımı için image oluşturulacaksa tüm ayarlar image oluşturma aşamasında yapılmalıdır.

Tek bir uygulama çalıştırılması için dizayn edilir.

Container’da sorun olduğunda saniyeler içinde yeni bir kopya oluşturulabilir. (Sorun containera bağlanarak çözülmez)

Container içinde çalışan ana uygulamanın durdurulduğu an container de durur.

Container durduğu anda sistem sorun olduğunu algılayarak aynı image dosyasından aynı ayarlarla yeni bir container oluşturarak sistemin çalışmaya devam etmesini sağlayabilir.