Docker Image ve Container Nedir?

Docker, bir uygulamanın tüm bağımlılıklarını ve ayarlarını tek bir paket halinde toplayarak, uygulamanın çalışması için gereken her şeyi barındırır. Böylece uygulamanın dağıtımını ve çalıştırılmasını kolaylaştırır. Docker, oluşturduğu bu paketi image adı verilen dosya haline getirir ve bu image, daha sonra herhangi bir sistemde container olarak çalıştırılabilir.

Docker image'ları, bir uygulamanın çalışması için gereken tüm dosyaları, kütüphaneleri ve ayarları içerir. Image'lar, bir uygulamanın herhangi bir sistemde aynı şekilde çalışabilmesini sağlar. Image'lar, bir kez oluşturulduktan sonra, Docker registry adı verilen bir depoda saklanabilir ve daha sonra istediğiniz zaman herhangi bir sistemde çalıştırılabilir.

Docker Image'ler, Registry adı verilen repository'lerde saklanır.

Docker container'ları ise, Docker image'larının çalıştırılmış halidir. Container'lar, bir uygulamanın çalışmasını sağlar ve bir image'ın çalıştırılması ile oluşturulur. Bir container, bir uygulamanın çalıştığı bir süreçtir ve bu süreç çalıştığı süre boyunca özel bir bellek alanı ve CPU kaynağı kullanır. Bir container, çalıştığı süre boyunca bir image'ın bir kopyası olarak çalışır ve bu kopyada yapılan değişiklikler image'a yansımaz.

Docker container, bir image'in çalıştırılmış halidir.

Docker container'ları ve image'ları arasındaki farkı anlamak için bir örnek vermek gerekirse, bir yemek tarifini düşünebiliriz. Image, yemek tarifini içeren bir kitaptır ve bu kitapta yemek tarifinin tüm ayrıntıları bulunur. Container ise, bu yemek tarifini uygulayan bir kişidir ve bu kişi tarif doğrultusunda yemek pişirir. Bu örnekte, image yemek tarifi olarak, container ise yemek pişirme sürecidir.

Docker container'ları ve image'ları, uygulamanın dağıtımı ve çalıştırılmasını kolaylaştıran en önemli araçlardır. Docker, bir uygulamanın tüm bağımlılıklarını ve ayarlarını tek bir paket halinde (container) toplayarak, uygulamanın çalışması için gereken her şeyi barındırır. Bu sayede, Docker ile oluşturulan bir container bir sistemde çalıştırıldığında, o sistemde o uygulama tamamen aynı şekilde çalışır.

Bir Docker container'ı oluşturmak için aşağıdaki adımları izleyebilirsiniz:

1. Dockerfile oluşturun: Uygulamanızın nasıl çalıştırılacağını ve hangi bağımlılıklarının yükleneceğini belirten bir Dockerfile oluşturun. Dockerfile hakkında detaylı bilgi için  aşağıdaki yazımızı okuyabilirsiniz:

Dockerfile Nedir? Dockerfile Komutları Nelerdir?
Dockerfile, Docker container oluşturmak için kullanılan bir yapılandırma dosyasıdır

2. Image oluşturun: Dockerfile'ı kullanarak bir image oluşturun. Bu işlemi docker build komutu ile yapabilirsiniz.

3. Container oluşturun: Image'ı kullanarak bir container oluşturun. Bu işlemi docker run komutu ile yapabilirsiniz. Run komutunun detayları için aşağıdaki yazımızı okuyabilirsiniz:

Docker Run Komutu ve Parametreleri
Docker run komutunu ve parametrelerini detaylıca inceliyoruz.

Bu adımlar tamamlandıktan sonra, oluşturduğunuz container çalışmaya başlar ve uygulamanız çalışmaya hazırdır. Docker, container'ların çalışması sırasında birçok farklı seçenek sunar. Örneğin, container'ın çalışma zamanı boyunca bellek ve CPU kaynaklarını ayarlayabilir, container'ın içerisinde çalışan süreçleri izleyebilir ve container'ın çalışmasını durdurabilirsiniz.

Artık sıradaki yazımız ile Docker derslerine devam edebilirsiniz.

Docker İmajları Registry Kullanmadan Başka Bir Hosta Taşımak
Docker imajları bir hosttan başka bir hosta Registry veya Hub kullanmadan taşıyabilirsiniz.