01.04. Docker Nesneleri

Docker’ı kullandığınızda images, containers, networks, volumes gibi nesneleri oluşturup kullanıyoruz. Bu bölüm, bu nesnelerden images ve containers hakkında kısa bilgiler içerir. Bu arada terminal ekranından kod yazmaya başlıyoruz 🙂

Docker kurulumu yaptıktan sonra Terminal (veya Cmd) ekranından komutlarımızı yazmaya paylaşabiliriz. docker yazdığımızda cevap gelmiyorsa kurulum olmamıştır. docker -v veya docker –version yazarak Docker versiyonunu öğrenerek başlayalım.

Images

Image, Docker container oluşturmaya ilişkin yönergeleri içeren bir şablondur. Genellikle bir image, bazı ek özelleştirmelerle birlikte başka bir image’i temel alır. Örneğin, Ubuntu işletim sistemi içinde Apache ve PHP gibi ek özelleştirmeleri içeren bir image oluşturulabilir. Kendinize özel image’ler oluşturup Docker Hub’a yükleyebilir veya Docker Hub üzerinden başka image’lere ulaşabilirsiniz. Kendi image’nizi oluşturmak için gerekli adımları tanımlayan basit bir söz dizimine sahip bir Dockerfile dosyası yaratabilirsiniz. Bir Dockerfile dosyasında her talimat, image’te bir katman oluşturur. Dockerfile değiştirip image’i yeniden oluşturduğunuzda, yalnızca değişen katmanlar yeniden oluşturulur (Kendine ait bir cache mekanizması var, katmalı yapı kurulum yaptıkça diğer kurulumlarınızı hızlandıracaktır.). Başka bir deyişle, değişmeyen katmanlar direkt image içine eklenir.

Containers (Konteynerler)
Container, bir image’in çalıştırılabilir bir örneğidir. Docker API veya CLI’yi kullanarak bir container oluşturabilir, başlatabilir, durdurabilir, taşıyabilir veya silebilirsiniz. Bir container bir veya daha fazla ağa (network) bağlayabilir, ona depolama (volume) ekleyebilir ve hatta mevcut durumuna göre yeni bir image oluşturabilirsiniz. Varsayılan olarak, bir container, diğer konteynerlerden ve onun ana makinesinden iyi bir şekilde yalıtılmıştır. Bir container, image’in yanı sıra oluşturduğunuzda veya başlattığınızda ona sağladığınız tüm yapılandırma seçenekleriyle tanımlanır. Bir container kaldırıldığında, kalıcı depolamada depolanmayan (volume üzerinden yapalır) durumundaki tüm değişiklikler kaybolur.