Docker, bir istemci-sunucu (client-server) mimarisi kullanır. Bu bölüm, bu mimari ve mimarinin bileşenlerine ayrılmıştır.
Docker istemcisi, Docker konteynerleri oluşturma, çalıştırma ve dağıtma gibi işleri yapan Docker deoman ile konuşur. Docker istemcisi üzerinden yereldeki Docker deoman’e veya uzaktaki bir sunucuda bulunan Docker deoman’e ulaşılabilinir. Docker istemcisi, aslında bir REST API üzerinden iletişim kurar. İleride kullanacağımız Docker Compose‘da başka bir Docker istemcisidir.
Docker daemon
Docker’ın arka plan programı (dockerd), Docker API isteklerini dinler ve images, containers, networks ve volumes gibi Docker nesnelerini yönetir. Bir arka plan programı, Docker hizmetlerini yönetmek için diğer arka plan programları ile de iletişim kurabilir.
Docker istemcisi
Docker istemcisi (docker), birçok Docker kullanıcısının Docker ile etkileşim kurmasının birincil yoludur. Terinal üzerinde docker run gibi komutları kullandığınızda, istemci bu komutları dockerd’e gönderir ve dockerd bu komutları çalıştırır. Docker istemcisi birden fazla arka plan programı ile iletişim kurabilir.
Docker Desktop
Docker Desktop, kolay şekilde konteyner uygulamaları ve microservisleri oluşturmanızı ve paylaşmanızı sağlayan bir GUI’dir. Mac, Windows veya Linux ortamlarında çalışabilir. Docker Desktop, Docker arka plan programı (dockerd), Docker istemcisi (docker), Docker Compose, Docker Content Trust, Kubernetes ve Credential Helper’ı içerir.
Docker registry
Bir Docker registry’leri, Docker image’lerini depolar. Docker Hub, herkesin kullanabileceği genel bir registry’dir. Büyük firmalar ve public olarak bizler buradan image’lerimizi paylaşabiliriz. Private olarak image depolamak için ücret ister 🙂 Docker’ı kurduğumuzda yükleme yaparken image’leri bu site üzerinden arar ve indirir.
docker pull veya docker run komutlarını kullandığınızda, gerekli image’ler yapılandırılmış registry’lerden alınır. docker push komutunu kullandığınızda, image yapılandırılmış registry’e gönderilir.