Docker Nedir, Nasıl Kullanılır?
Docker, uygulamaları işletim sisteminden izole edilmiş konteynerlerde çalıştıran açık kaynaklı bir platformdur. Yazılım dağıtım süreçlerini standartlaştırır ve hızlandırır.

İÇİNDEKİLER
%0 okundu
- Docker Nedir? (Tanım ve İşletim Sistemi İzolasyonu)
- Konteynerizasyon ve Sanallaştırma: Temel Farklar
- Kurumsal Mimaride Docker'ın Temel Bileşenleri
- İş Süreçlerinde Docker Kullanmanın Avantajları
- Docker Güvenliği: Üretim Ortamında Dikkat Edilmesi Gerekenler
- Adım Adım Docker Nasıl Kullanılır?
- İleri Seviye Planlama: Docker ve Kubernetes Birlikteliği
Docker, uygulamaları işletim sisteminden izole edilmiş konteynerlerde çalıştıran açık kaynaklı bir platformdur. Yazılım dağıtım süreçlerini standartlaştırır ve hızlandırır. Modern yazılım mimarilerinde "benim makinemde çalışıyordu, sunucuda neden çalışmıyor?" krizini tamamen ortadan kaldıran bu teknoloji; kodun, sistem kütüphanelerinin ve tüm çalışma zamanı (runtime) bağımlılıklarının taşınabilir paketler halinde birleştirilmesini sağlar. İşletme sahipleri, teknoloji liderleri ve geliştiriciler için Docker Nedir, Nasıl Kullanılır? sorusunun yanıtı yalnızca teknik bir araç kurulumundan ibaret değildir; operasyonel maliyetlerin optimize edilmesi, DevOps süreçlerinin hızlandırılması ve mikroservis mimarisine sorunsuz geçiş için stratejik bir altyapı dönüşümüdür.
Docker Nedir? (Tanım ve İşletim Sistemi İzolasyonu)

Docker, yazılım uygulamalarını ve bunların ihtiyaç duyduğu tüm bağımlılıkları (kütüphaneler, ortam değişkenleri, ikili dosyalar) "konteyner" (container) adı verilen hafif, taşınabilir ve izole edilmiş birimler halinde paketleyen açık kaynaklı bir konteynerizasyon platformudur. 2013 yılında Solomon Hykes tarafından duyurulan Docker, yazılım sektöründe devrim yaratarak geliştirme, test ve canlıya alma (production) süreçleri arasındaki sınırları ve uyumsuzlukları ortadan kaldırmıştır. Temel mantığı, bir uygulamanın altyapıdan tamamen bağımsız şekilde, her ortamda birebir aynı davranışla çalışabilmesini sağlamaktır.
Docker'ın sunduğu işletim sistemi seviyesinde izolasyon (OS-level virtualization), Linux çekirdeğinin (kernel) iki temel özelliğine dayanır: Control Groups (cgroups) ve Namespaces. Namespaces özelliği; bir sürecin (process) görebileceği dosya sistemini, süreç ağacını (PID), ağ arabirimlerini (Network), kullanıcı kimliklerini (User) ve süreçler arası iletişim kanallarını (IPC) izole eder. Bu sayede bir konteyner içerisinde çalışan web sunucusu, ana makinedeki veya diğer konteynerlerdeki süreçlerden tamamen habersiz, bağımsız bir sanal dünyadaymış gibi çalışır.
Control Groups (cgroups) mekanizması ise izole edilen bu süreçlerin donanım kaynaklarını ne oranda tüketebileceğini sınırlandırır ve denetler. Bir konteynere atanacak maksimum CPU çekirdeği, bellek (RAM), disk I/O bant genişliği veya ağ kotaları cgroups üzerinden net bir şekilde belirlenir. Bu mimari, tek bir sunucu üzerinde yüzlerce farklı mikroservisin birbirinin kaynaklarını tüketmeden (noisy neighbor problemi yaşamadan) kararlı biçimde barınmasını mümkün kılar.
Kurumsal karar vericiler açısından Docker; sunucu konsolidasyonunu maksimum seviyeye çıkaran, bulut maliyetlerini düşüren ve yazılım yaşam döngüsünü (SDLC) haftalardan dakikalara indiren stratejik bir araçtır. Geleneksel yazılım dağıtım modellerinde yaşanan kütüphane çakışmaları, farklı işletim sistemi yamalarının yarattığı öngörülemeyen hatalar ve sunucu yapılandırma tutarsızlıkları Docker konteynerleri sayesinde kalıcı olarak çözüme kavuşturulur.
Konteynerizasyon ve Sanallaştırma: Temel Farklar

Geleneksel sanallaştırma teknolojisi ile modern konteynerizasyon arasındaki temel fark, donanım kaynaklarının nasıl soyutlandığı ve işletim sistemi katmanının nasıl paylaşıldığı noktasında ortaya çıkar. Her iki teknoloji de uygulamaları izole etmeyi hedefler; ancak izledikleri mimari rota, sistem performansı ve kaynak tüketimi optimizasyonu açısından belirgin ayrışmalar sunar.
Geleneksel Sanal Makineler (Virtual Machines) Neden Yetersiz Kaldı?
Geleneksel sanallaştırmada, bir fiziksel sunucu üzerinde çalışan hypervisor (VMware ESXi, KVM, Microsoft Hyper-V) donanımı sanallaştırır. Her bir Sanal Makine (VM), kendi tam teşekküllü konuk işletim sistemine (Guest OS), çekirdeğine, sürücülerine ve sistem servislerine ihtiyaç duyar. Örneğin yalnızca 50 MB'lık bir Node.js API uygulamasını çalıştırmak için 10 GB'lık bir Ubuntu veya Windows Server işletim sistemi ayağa kaldırmak gerekir.
Bu durum muazzam bir kaynak israfına, yavaş önyükleme (boot) sürelerine ve yüksek lisans maliyetlerine yol açar. Bir sanal makinenin yeniden başlatılması dakikalar alırken, anlık trafik artışlarında (traffic spikes) sanal makineler üzerinden yatayda ölçeklenmek (horizontal scaling) sistemin talebe geç yanıt vermesine neden olur.
Docker'ın Donanım Kaynaklarını Optimize Etme Yöntemi
Docker, konuk işletim sistemi katmanını tamamen ortadan kaldırır. Tüm konteynerler, ana makinenin (host) çekirdeğini doğrudan paylaşır. Bu paylaşımlı mimari sayesinde konteynerler yalnızca uygulamanın kodunu, gerekli kütüphaneleri ve çalıştırılabilir ikili dosyaları içerir.
Sonuç olarak Docker konteynerleri milisaniyeler içinde başlar, bellek üzerinde yalnızca uygulamanın ihtiyaç duyduğu kadar yer kaplar ve doğrudan ana işletim sistemi çekirdeğiyle konuştuğu için sıfıra yakın performans kaybıyla çalışır. Bu kaynak optimizasyonu, aynı donanım altyapısı üzerinde 4 ila 10 kat daha fazla servis çalıştırabilme kapasitesi sağlayarak işletmelerin altyapı maliyetlerini doğrudan aşağı çeker.
Kurumsal Mimaride Docker'ın Temel Bileşenleri
Docker ekosistemi, modüler ve istemci-sunucu (client-server) mimarisine dayanan yapı taşlarından oluşur. Bu bileşenlerin görev tanımlarını doğru kavramak, mikroservis mimarisi tasarlayan ve konteyner orkestrasyonuna hazırlık yapan teknik ekipler için kritik öneme sahiptir.
Docker Engine: Sistemin Kalbi
Docker Engine, konteyner oluşturma, çalıştırma ve kaynak tahsis etme süreçlerini yöneten ana sistemdir. Üç temel alt bileşenden oluşur:
Docker Daemon (
dockerd): Arka planda sürekli çalışan sunucu sürecidir. İmajların oluşturulması, konteynerlerin yaşam döngüsü, veri depolama birimleri (volume) ve sanal ağların yapılandırılması gibi tüm operasyonel işleri yürütür.REST API: Docker CLI veya harici otomasyon araçlarının Docker Daemon ile haberleşmesini sağlayan standart HTTP arayüzüdür.
Docker CLI (@@CODE0@@): Geliştiricilerin ve sistem yöneticilerinin komut satırı üzerinden @@CODE1@@ ile etkileşime girmesini sağlayan kullanıcı arayüzüdür.
Docker Image ve Container Arasındaki İlişki
Docker dünyasında en sık karıştırılan iki kavram İmaj (Image) ve Konteyner (Container) yapılarıdır. Bu ilişki, nesne yönelimli programlamadaki (OOP) Sınıf (Class) ve Nesne (Object/Instance) ilişkisine benzer.
Docker Image: Bir uygulamanın çalışabilmesi için gereken tüm dosya sistemini, bağımlılıkları, ortam değişkenlerini ve başlangıç talimatlarını içeren, salt okunur (read-only) ve katmanlı (layered) bir şablondur. İmajlar bir kez derlenir (build) ve asla değiştirilemez.
Docker Container: Bir Docker imajının bellekte hayat bulmuş, çalışan veya durdurulmuş canlı bir örneğidir. Docker Engine, salt okunur imaj katmanlarının üzerine ince, yazılabilir (read-write) bir konteyner katmanı ekler. Konteyner içinde yapılan tüm dosya değişiklikleri yalnızca bu yazılabilir katmanda gerçekleşir; alttaki ana imaj bozulmadan korunur.
[ Dockerfile ] ---> (docker build) ---> [ Docker Image (Salt Okunur) ]
|
(docker run)
v
[ Docker Container (Canlı Süreç) ]Docker Registry ve Docker Hub (Güvenlik Uyarıları)
Docker Registry, derlenen Docker imajlarının depolandığı, sürümlendiği ve dağıtıldığı merkezi veya özel (private) depolama havuzudur. Docker Hub, varsayılan olarak kullanılan dünyanın en büyük genel (public) imaj kayıt merkezidir.
Kurumsal ortamlarda genel imaj kayıt merkezlerinden imaj çekerken dikkatli olunmalıdır. Doğrulanmamış veya üçüncü şahıslar tarafından yüklenmiş kamuya açık imajlar; güvenlik açıkları, zararlı yazılımlar (malware) veya kripto madencilik araçları içerebilir. Kurumsal güvenlik politikaları gereğince, üretim (production) ortamlarında yalnızca Docker Official Images veya şirket içinde barındırılan özel kayıt merkezleri (Harbor, AWS ECR, Azure ACR, Google Artifact Registry) tercih edilmelidir.
İş Süreçlerinde Docker Kullanmanın Avantajları

Docker, yalnızca teknik operasyonları kolaylaştıran bir yazılım aracı değil, aynı zamanda işletmelerin pazara çıkış süresini (Time-to-Market) kısaltan ve dijital ürün kalitesini artıran stratejik bir dönüşüm kaldıraçtır.
Yazılım Dağıtım Süreçlerinde Standardizasyon
Geleneksel yazılım yaşam döngüsünde yazılımcının yerel bilgisayarı (macOS veya Windows), test sunucusu (Debian) ve canlı üretim sunucusu (CentOS) birbirinden farklı paket sürümlerine ve sistem kütüphanelerine sahiptir. Bu heterojen yapı, test aşamasında tespit edilemeyen ancak canlıya geçiş anında kritik kesintilere (downtime) yol açan hataların başlıca sebebidir.
Docker, tüm bağımlılıkları işletim sistemi çekirdeğinin hemen üstünde tek bir standart paket haline getirir. Geliştiricinin kendi bilgisayarında test edip onayladığı Docker imajı, hiçbir değişikliğe uğramadan test, hazırlık (staging) ve canlı sunucularında birebir aynı şekilde çalışır. Bu standardizasyon, sürümler arası uyumsuzluk riskini sıfıra indirir.
CI/CD Boru Hatlarında (Pipelines) Hız ve Verimlilik
Sürekli Entegrasyon ve Sürekli Dağıtım (CI/CD süreçleri), modern DevOps kültürünün temel direğidir. Docker konteynerleri, CI/CD hatlarının hızlanmasında iki temel avantaj sunar:
Katman Önbelleğe Alma (Layer Caching): Dockerfile içerisindeki her bir komut bir dosya sistemi katmanı üretir. Kod tabanında küçük bir değişiklik yapıldığında Docker yalnızca değişen katmanı yeniden derler; işletim sistemi paketleri ve değişmeyen kütüphaneler önbellekten anında çağrılır. Bu özellik, derleme sürelerini dakikalardan saniyelere düşürür.
İzole ve Tek Kullanımlık Test Ortamları: Her kod taahhüdü (commit) için saniyeler içinde sıfır kilometre bir test veritabanı ve uygulama konteyneri ayağa kaldırılabilir. Testler tamamlandığında konteynerler tamamen imha edilir; sunucularda gereksiz kalıntı veya kütüphane kirliliği kalmaz.
Kaynak Tüketimi ve Altyapı Maliyetlerinin Azaltılması
Sanal makinelerin gerektirdiği yüksek donanım eşikleri, bulut altyapılarında (AWS, Google Cloud, Azure) yüksek faturalara yol açar. Docker konteynerlerinin sunduğu hafiflik ve yüksek yoğunluk sayesinde, aynı bulut sunucusu (örneğin 8 vCPU, 32 GB RAM) üzerinde sanal makinelere kıyasla çok daha fazla mikroservis barındırılabilir. Bu optimizasyon, işletmelerin aylık bulut altyapı maliyetlerinde %30 ila %60 arasında tasarruf sağlamasına olanak tanır.
Docker Güvenliği: Üretim Ortamında Dikkat Edilmesi Gerekenler
Docker konteynerleri işletim sistemi çekirdeğini paylaştığı için, geleneksel sanal makinelere kıyasla güvenlik mimarisine çok daha fazla özen gösterilmelidir. Konteyner seviyesinde meydana gelebilecek bir güvenlik açığı, çekirdek üzerinden ana makinenin (host) veya diğer konteynerlerin ele geçirilmesine (Container Escape) zemin hazırlayabilir.
Resmi Olmayan İmajların Barındırdığı Riskler ve İmaj Zafiyet Taraması
Docker Hub üzerinde yer alan halka açık imajların önemli bir kısmı güncel olmayan yazılım paketleri ve bilinen güvenlik zafiyetleri (CVE - Common Vulnerabilities and Exposures) barındırır. Üretim ortamına dahil edilecek her imaj için zafiyet tarama süreçleri (Trivy, Clair, Snyk veya Docker Scout) otomatikleştirilmelidir.
Minimum Taban İmaj (Distroless / Alpine): İmaj oluştururken tam boyutlu Ubuntu veya Debian imajları yerine yalnızca uygulamanın çalışması için gereken en yalın paketleri içeren Alpine Linux veya Google Distroless imajları tercih edilmelidir. Bu yaklaşım, saldırı yüzeyini (attack surface) dramatik şekilde daraltır.
İmaj İmzalama (Docker Content Trust): CI/CD hattından geçen imajların dijital olarak imzalanması, üretim sunucularına yalnızca onaylı ve kurcalanmamış imajların dağıtılmasını garanti altına alır.
Konteyner İzolasyonu ve Kök Yetkisi (Root Privilege) Kısıtlaması
Varsayılan ayarlarda bir Docker konteyneri başlatıldığında, konteyner içindeki süreç root (kök kullanıcı) yetkileriyle çalışır. Konteyner içinde gerçekleşebilecek bir uzaktan kod çalıştırma (RCE) zafiyeti, saldırganın ana makine çekirdeğinde de kök yetkilerine erişmesine kapı aralayabilir.
Kurumsal güvenlik politikaları (ISO 27001 ve CIS Docker Benchmark standartları) doğrultusunda:
Dockerfile içerisinde mutlaka ayrıcalıksız bir kullanıcı (non-root user) tanımlanmalıdır (@@CODE0@@ veya @@CODE1@@).
Konteynerler kesinlikle
--privilegedbayrağıyla çalıştırılmamalıdır.Dosya sistemine yazma ihtiyacı olmayan servisler için salt okunur dosya sistemi (
--read-only) parametresi devreye alınmalıdır.Hassas veriler (API anahtarları, veritabanı parolaları) asla Dockerfile içerisine doğrudan yazılmamalı; Docker Secrets, HashiCorp Vault veya ortam değişkenleri (Environment Variables) üzerinden güvenli biçimde enjekte edilmelidir.
Adım Adım Docker Nasıl Kullanılır?
Docker'ı kurumsal veya bireysel geliştirme süreçlerine dahil etmek; önkoşulların sağlanması, temel komut setlerinin kavranması ve standart bir uygulama için Dockerfile hazırlanması adımlarını içerir.
Kurumsal Ortamlar İçin Docker Kurulum Önkoşulları
Docker kurulumuna başlamadan önce sistem mimarisi ve lisanslama koşulları değerlendirilmelidir. Geliştirici bilgisayarlarında (Windows / macOS) Docker Desktop yaygın olarak kullanılır. Ancak Docker'ın kurumsal lisanslama politikalarına göre; 250'den fazla çalışanı olan veya yıllık 10 milyon doların üzerinde geliri bulunan ticari işletmelerin Docker Desktop için ücretli abonelik (Docker Pro, Team veya Business) alması gerekmektedir. Alternatif olarak açık kaynaklı Rancher Desktop, Podman veya doğrudan Linux sanal makineleri üzerinde çalışan saf Docker Engine tercih edilebilir.
Linux (Ubuntu/Debian) Kurulumu: Doğrudan paket yöneticisi (@@CODE0@@) üzerinden @@CODE1@@, @@CODE2@@ ve @@CODE3@@ paketleri yüklenir.
Windows/macOS Kurulumu: Donanım sanallaştırmasının (BIOS/UEFI üzerinden VT-x veya AMD-V) ve Windows için WSL 2 (Windows Subsystem for Linux) altyapısının aktif edilmesi gerekir.
Temel Docker Komutları ve İşlevleri
Docker CLI üzerinde günlük operasyonlarda en sık kullanılan komutlar ve işlevleri şunlardır:
# Docker Hub üzerinden resmi bir imajı yerel makineye indirmek
docker pull nginx:alpine
# Mevcut indirilen imajları listelemek
docker images
# Bir konteyneri arka planda (detached mode), port yönlendirerek çalıştırmak
docker run -d -p 8080:80 --name my-web-server nginx:alpine
# Aktif olarak çalışan konteynerleri listelemek
docker ps
# Çalışan ve durdurulmuş tüm konteynerleri listelemek
docker ps -a
# Çalışan bir konteyneri durdurmak ve tamamen silmek
docker stop my-web-server
docker rm my-web-server
# Bir konteynerin konsol çıktılarını (loglarını) anlık takip etmek
docker logs -f my-web-server
# Çalışan konteynerin içine interaktif kabuk (shell) bağlantısı açmak
docker exec -it my-web-server shİlk Uygulamanızı Konteyner İçerisinde Çalıştırmak (Uygulama Adımları)
Kendi özel uygulamanızı konteynerize etmek için izlenmesi gereken operasyonel adımlar aşağıda detaylandırılmıştır.
1. Kod Tabanı Oluşturma --> 2. Dockerfile Yazımı --> 3. İmaj Derleme (Build) --> 4. Konteyner Başlatma (Run)Örnek bir Node.js uygulamasının Dockerfile yapılandırması şu şekildedir:
# 1. Aşama: Resmi ve optimize taban imajı seçin
FROM node:20-alpine
# 2. Aşama: Uygulama çalışma dizinini belirleyin
WORKDIR /usr/src/app
# 3. Aşama: Bağımlılık dosyalarını kopyalayın ve paketleri kurun
COPY package*.json ./
RUN npm ci --only=production
# 4. Aşama: Kaynak kodları çalışma dizinine aktarın
COPY . .
# 5. Aşama: Güvenlik için ayrıcalıksız kullanıcıya geçin
USER node
# 6. Aşama: Uygulamanın dinleyeceği portu belirtin
EXPOSE 3000
# 7. Aşama: Konteyner başladığında çalışacak ana komutu tanımlayın
CMD ["node", "server.js"]Uygulamayı derlemek ve çalıştırmak için terminal üzerinden şu komutlar yürütülür:
# İmajı "node-app:1.0" etiketiyle derleyin
docker build -t node-app:1.0 .
# Derlenen imajı 3000 portunu 3000 portuna bağlayarak çalıştırın
docker run -d -p 3000:3000 --name node-service node-app:1.0Bir yazılım projesini Docker konteynerine dönüştürme sırası. Uygulamanın taban imajını, bağımlılıklarını ve başlangıç komutlarını içeren yapılandırma dosyasını oluşturun. docker build komutunu kullanarak katmanlı ve taşınabilir Docker imajını oluşturun. docker run komutuyla port yönlendirmesini ve ortam değişkenlerini yapılandırarak uygulamanızı izole ortamda başlatın.Konteynerleştirme Süreç Adımları
Dockerfile Dosyasını Hazırlayın
Docker İmajını Derleyin
Konteyneri Çalıştırın ve Test Edin
İleri Seviye Planlama: Docker ve Kubernetes Birlikteliği
Tek bir sunucu veya yerel geliştirme ortamında Docker CLI ve docker-compose araçları konteynerleri yönetmek için oldukça yeterlidir. Ancak yüzlerce mikroservisin çalıştığı, yüksek erişilebilirlik (High Availability), sıfır kesintili dağıtım (Zero-Downtime Deployment) ve otomatik ölçeklenme (Auto-Scaling) gerektiren kurumsal ortamlarda tekil Docker yönetimi yetersiz kalır.
Bu noktada devreye konteyner orkestrasyon araçları, özellikle sektör standardı haline gelen Kubernetes (K8s) girer.
Görev Ayrımı: Docker, uygulamayı paketleme ve tekil sunucuda çalıştırma (runtime) birimidir. Kubernetes ise yüzlerce sunucudan (node) oluşan büyük bir donanım havuzunda hangi konteynerin hangi sunucuda çalışacağını, çöken konteynerlerin nasıl yeniden başlatılacağını (Self-Healing) ve ağ yükünün konteynerler arasında nasıl dağıtılacağını yöneten orkestratördür.
CRI (Container Runtime Interface) Uyumluluğu: Modern Kubernetes mimarilerinde Docker tarafından geliştirilen
containerdçalışma zamanı motoru doğrudan kullanılır. Docker ile derlenen OCI (Open Container Initiative) uyumlu her imaj, Kubernetes kümelerinde sorunsuz biçimde çalışır.
Mikroservis mimarisine geçiş planlayan işletmeler için doğru strateji; geliştirme aşamasında Docker ile imaj standardizasyonu sağlamak, üretim aşamasında ise bu imajları Kubernetes veya yönetilen Kubernetes servisleri (AWS EKS, Google GKE, Azure AKS) üzerinde koordine etmektir.
Sıkça Sorulan Sorular
Docker tamamen ücretsiz ve açık kaynaklı mıdır?
Docker Engine ve temel açık kaynak bileşenleri (Moby Project) tamamen ücretsizdir. Ancak geliştirici arayüzü sunan Docker Desktop yazılımı; 250'den fazla çalışanı veya 10 milyon dolar üzeri geliri olan büyük işletmeler için ücretli abonelik gerektirir.
Docker, mikroservis mimarisi için zorunlu mudur?
Docker teknik olarak zorunlu değildir ancak mikroservislerin getirdiği bağımsız dağıtım, dil bağımsızlığı ve ölçeklenme ihtiyaçlarını en az kaynak tüketimiyle çözdüğü için fiili sektör standardı haline gelmiştir.
Docker konteynerleri veri kalıcılığını (Data Persistence) nasıl sağlar?
Konteynerler varsayılan olarak geçicidir (ephemeral); konteyner silindiğinde içindeki veri de kaybolur. Kalıcı veriler için ana makinenin diskini konteynere bağlayan Docker Volume veya Bind Mount yapıları kullanılır.
Dockerfile ile Docker Compose arasındaki temel fark nedir?
Dockerfile, tek bir uygulamanın imajını oluşturmak için kullanılan yapılandırma dosyasıdır. Docker Compose ise veritabanı, ön yüz ve API gibi birden fazla konteynerden oluşan çoklu servisleri tek bir YAML dosyasıyla birlikte yönetmeyi sağlar.
Docker Sanal Makinelere (VM) göre ne kadar hızlıdır?
Docker konteynerleri konuk işletim sistemi başlatma ihtiyacı duymadığı için saniyeler hatta milisaniyeler içinde çalışır. Sanal makinelerin önyükleme süreleri ise dakikaları bulabilir.
Bir Docker konteynerine nasıl uzaktan bağlanılır ve port yönlendirmesi nasıl yapılır?
Konteyner içindeki bir servise erişmek için @@CODE 0@@ şeklinde port yönlendirmesi (port mapping) yapılır. Konteyner terminaline bağlanmak için ise @@CODE 1@@ komutu kullanılır.
Docker Desktop olmadan Docker kullanılabilir mi?
Evet, Linux ortamlarında doğrudan terminal üzerinden Docker Engine çalıştırılabilir. Windows ve macOS kullanıcıları ise Docker Desktop yerine Rancher Desktop, Podman veya Colima gibi açık kaynaklı alternatif araçları tercih edebilir.
Docker imaj boyutu performansı nasıl etkiler ve nasıl küçültülür?
Büyük imajlar ağ üzerinden transfer süresini ve güvenlik risklerini artırır. Çok aşamalı derleme (Multi-Stage Build) ve Alpine Linux gibi minimal taban imajlar kullanılarak imaj boyutları gigabaytlardan megabayt seviyelerine düşürülebilir.