Docker Image Nedir?

Salih Cantekin
3 min readNov 26, 2020

--

Ne ki bu Docker?

Eğer daha önce hiç Docker kavramını duymamışsanız “Nedir bu Docker” dediğiniz şey diye içinizden geçirmeniz çok büyük olasılık bence. O yüzden buradaki “Docker nedir ve neden ortaya çıktı” yazımı okuyarak veya buradan Youtube üzerinde hazırlamış olduğum ücretsiz Docker eğitim setini izleyerek bu konu hakkkında bilgi edinebilirsiniz.

Dockerfile ve Docker Image İlişkisi

Eveeet diğer yazımı okumayı bitirip burada kaldığınız yerden devam ettiğinizi düşünebilirim sanırım. Docker Image kavramı aslında Dockerfile ile birlikte açıklanması gereken bir kavram ancak Dockerfile’ı açıklarken de Docker Image’lardan bahsetmek gerekiyor. O yüzden bir paradoks yaratmamak adına şimdilik Dockerfile’dan çok fazla bahsetmeden konuya gireceğim.

Docker Image

Docker üzerindeki Container’lar ki ben kendilerine %80 sanal makine diye hitap ediyorum, içerilerinde çalıştırmak üzere bir programa ihtiyaç duyarlar. Program dediysem de öyle her türlü programı direk Container üzerinde çalıştıramazsın diye de ekliyoruz. Bu programlar ancak ve ancak Image dediğimiz kutucuklar içerisinde saklanarak çalıştırılabilirler. Aslında işin özü bu. Normal şartlarda .Net de, NodeJs’de, Java da veya başka bir programala dilinde geliştirmiş olduğunuz bir projeyi çalıştırabilmek için bir sunucuya ihtiyaç duyarız ve o sunucu içerisinde bizim sistemimizi çalıştırabilecek kütüphaneleri ve/veya alt sistemi barındırmak durumunda kalır. Örneğin Windows bir sunucu üzerinde Asp.Net ile yazılımış bir proje için IIS’e ihtiyaç duyarız. Bu IIS Windows işletim sistemi üzerinde çalışır.

Image dediğimiz kutucuklar da aslında bizim için bu ortamı sağlarlar. İçerisinde bir işletim sistemi ve sizin uygulamanızın çalışma ortamı (IIS) barındırır. Ama bir dakika, ben her Image içine önce işletim sistemi sonra da IIS kurarsam boyutları çok büyük olmaz mı? O zaman nerede kaldı Docker kullanmanın avantajı? Bunlar çok mantıklı sorular ve Docker içerisinde sizin mantıklı sorularınıza mantıklı cevaplar var.

Docker Image Örneği ve Boyut Açıklaması

Bilgisayarınıza bir işletim sistemi yüklediğinizde o sistem içerisinde ihtiyacınız olsun veya olmasın bir sürü de ek özellik gelir. E tabi bu özellikler de diskte belli bir yer kaplar. Mesela 100 MB lık bir projeniz için önce Windows 2012 ve ardından da IIS’i yüklerseniz disk üzerinde 5–6GB lık yere ihtiyacınız olacaktır. Docker Image’ların boyutlarını küçük tutabilmek adına, yetkililer tarafından sadece IIS’in ihtiyaç duyacağı kadar dosyalar hazırlanmıştır. Bunu sadece IIS olarak düşünmeyin. Linux üzerinde bir html proje çalıştıracaksanız aynı örneği Linux ve Apache için düşünebilirsiniz. Peki nereden nasıl bulunur da kullanılır bu “yetkililer”in oluşturduğu bu Image’lar derseniz de bunun için Docker’ın kendi “Hub” (Docker Image Reposu) var ve buradan ulaşabilirsiniz.

Docker Image Hub

Yani buradan da anlayacağımız üzere biz projelerimizi çalıştırabilmek için daha önceden oluşturulmuş bir Image’a ihtiyaç duyarız? Bunun cevabı hem evet hem hayır. Evet çünkü her Image bir temel Image’dan oluşmak zorunda. Hayır çünkü gerekirse biz de Dockerfile kullanarak kendi Image’larımızı oluşturabiliriz ama yine de temel bir Image’dan faydalanmak zorunda kalacağız. Bir Docker Image oluşturduğumuzda aslında temel bir işletim sistemi + Projemizin çalışma ortamı (IIS, Apache vs) + Proje dosyaları’nı bir paketin içerisine koyarak bir Container’ın bunu çalıştırması için hazır hale getirmiş oluruz.

Docker Image ile ilgili yazını çok anlamadım keşke bir video olsaydı da izleseydim diye düşünüyorsanız o videoya da buradan ulaşabilirsiniz.

Docker ile ilgili diğer yazılarımı da takip ederek bu konuda daha fazla bilgi edinebilirsiniz.

--

--

No responses yet