Docker'ı kendi Linux sunucunuzda öğrenmek için önerdiğimiz yol şudur: önce Docker Engine'i dağıtımınızın resmî deposundan kurun, ardından docker grubunun ne anlama geldiğini öğrenerek sudo olmadan çalışmayı ayarlayın, Compose eklentisini doğrulayın ve ilk Compose dosyanızı yazın. Bu temel oturduktan sonra depolama, ağ, imaj oluşturma, Compose ileri konuları ve güvenlik başlıklarına ihtiyacınız oldukça geçebilirsiniz. Bu sayfa, Docker serimizdeki 49 yazıyı bu öğrenme yoluna göre sekiz grupta topluyor.
Her grubun başında o konunun neden önemli olduğunu kısaca açıklıyor, ardından yazıları birer cümlelik özetle listeliyoruz. Yazıların tamamı Docker'ın resmî belgelerine (Docker Engine 29.9.3'e kadar) dayanır ve Compose dosyası örnekleri Docker Compose ile doğrulanmıştır. Docker'ın ne olduğunu, neden kullanıldığını ve bir uygulamayı uçtan uca nasıl yayına aldığınızı merak ediyorsanız işe Docker ile uygulama deploy yazısıyla başlayın.
Docker'a kısa bir bakış
Docker, uygulamanızı ve bağımlılıklarını bir imaj olarak paketleyip bu imajdan container'lar çalıştırmanızı sağlar. Sunucu tarafında işi yapan bileşen Docker Engine'dir: arka planda çalışan daemon (dockerd), onunla bir Unix soketi üzerinden konuşan docker komut satırı istemcisi ve container yaşam döngüsünü yöneten containerd. Belgelere göre daemon varsayılan olarak root yetkisiyle çalışır; bu yüzden daemon'ı kimin kontrol edebildiği bir güvenlik kararıdır. Bu mimarinin ayrıntılarını tekrar etmek yerine ilgili yazılara bağlantı veriyoruz.
Nereden başlamalı?

Docker'a yeni başlıyorsanız şu sırayı izlemenizi öneririz. Her adım bir öncekinin üzerine kurulur:
- 1. Kurulum: Ubuntu kullanıyorsanız Docker Ubuntu kurulumu, diğer dağıtımlarda Debian, Fedora, RHEL ve CentOS kurulumu yazısını izleyin.
- 2. İzinler: sudo olmadan Docker kullanımı yazısında
dockergrubunun root düzeyinde yetki verdiğini öğrenip bilinçli bir seçim yapın. - 3. Compose: Docker Compose plugin kurulumu ile
docker composekomutunun hazır olduğunu doğrulayın. - 4. İlk proje: Docker Compose başlangıç rehberi ile tek servisli bir dosya yazın, sonra Docker Compose rehberi ile çok servisli yapıya geçin.
- 5. İlk imaj: kendi imajınızı oluşturmak için Dockerfile yazma rehberi yazısıyla temel talimatları ve multi-stage build'i öğrenin.
- 6. Sunucu hijyeni: log boyutunu sınırlama, Docker ve UFW ve disk temizleme yazılarını ilk production deploy'unuzdan önce okuyun.
Kurulumu kontrol etmek
Kurulumdan sonra üç komutla durumu görebilirsiniz. docker version, istemci (Client) ve sunucu (Server) için ayrı bölümler halinde sürüm ve API sürümü bilgisini yazar; belgelere göre sunucu bölümündeki API satırı daemon'ın desteklediği en düşük API sürümünü de gösterir. docker compose version Compose eklentisinin sürümünü verir. docker info ise daemon'dan sistem genelindeki bilgiyi ister; belgeler Docker'ın çalışıp çalışmadığını işletim sisteminden bağımsız kontrol etmenin yolu olarak bu komutu gösterir.
docker version
docker compose version
docker infodocker version veya docker info bir "Cannot connect" hatası veriyorsa CLI daemon'a ulaşamıyordur; teşhis adımları Cannot connect to the Docker daemon hatası yazısında. İzin hatası alıyorsanız Docker permission denied yazısına bakın. Belgeler ayrıca istemci ile daemon'ın her zaman aynı sürümde olması gerekmediğini, ancak daemon istemciden yeniyse istemcinin yeni özellikleri bilmeyeceğini, istemci daemon'dan yeniyse daemon'ın bilmediği uç noktaları isteyebileceğini hatırlatır. Komutların çıktısını şablonla süzmek için format ve filter kullanımı yazısına bakabilirsiniz.
1. Kurulum ve daemon temelleri

Bu grup Docker Engine'in sunucuya kurulmasını, kullanıcı izinlerini, Compose eklentisini ve daemon'ın yapılandırılıp sorunlarının giderilmesini kapsar. Sunucuya ilk kez Docker kuruyorsanız buradan başlayın.
- Docker Ubuntu kurulumu: resmî
aptdeposunu ekleme, sürüm sabitleme,.debile kurulum, güncelleme ve tamamen kaldırma. - Debian, Fedora, RHEL ve CentOS kurulumu: dağıtımlar arasındaki farklar, RPM tabanlı sistemlerde servisi başlatma, Raspberry Pi OS 32 bit desteğinin sona ermesi ve binary kurulum.
- Docker permission denied ve sudo olmadan çalıştırma:
dockergrubu, parola korumalınewgrperişimi,~/.dockerizin hatası ve açılışta başlatma. - Docker Compose plugin kurulumu:
docker composeiledocker-composefarkı, Compose v1, v2 ve v5, elle kurulum ve kaldırma. - daemon.json yapılandırma: dosyanın konumu, bayraklarla çakışma, live restore, veri dizini, proxy ve hangi ayarın restart, hangisinin reload istediği.
- Cannot connect to the Docker daemon hatası: daemon durumu,
DOCKER_HOST, daemon logları, debug modu ve sık başlatma hataları.
2. Container çalıştırma ve CLI
Kurulum tamamlandıktan sonra günlük işin çoğu container'ları çalıştırmak, izlemek ve sunucuyu düzenli tutmaktır. Bu grup, container'ların yeniden başlama davranışından kaynak limitlerine ve disk temizliğine kadar günlük operasyon konularını içerir.
- Docker restart policy:
no,on-failure,alwaysveunless-stoppedpolitikaları ve systemd ile container başlatmanın farkı. - Docker CPU ve bellek limiti:
--memory,--memory-swapve--cpusile kaynak sınırlama ve bellek tükendiğinde OOM davranışı. - docker stats ve container metrikleri:
docker stats, cgroup metrikleri ve daemon metriklerini Prometheus ile toplama. - Docker format ve filter kullanımı:
--formatile Go şablonlarını ve--filterile listeleri süzmeyi örneklerle anlatır. - Docker context ile uzak sunucu yönetimi:
docker context createveuseile SSH üzerinden uzak bir Docker Engine'i yönetme. - Docker prune ile disk temizleme:
system,image,containervevolume prunekomutları, filtreler ve dolan diski boşaltma. - Docker Hub pull limiti: pull'un nasıl sayıldığı, limitler,
toomanyrequestshatası ve kalan limiti görme.
3. Depolama
Container'ın yazılabilir katmanı container silinince kaybolur; kalıcı veri için volume, bind mount veya tmpfs kullanılır. Bu grup veri saklama seçeneklerini, yedeklemeyi ve Docker'ın imaj katmanlarını diskte nasıl tuttuğunu anlatır.
- Docker volume kullanımı: volume oluşturma, listeleme, inceleme ve silme,
--mountile-vfarkı, salt okunur ve anonim volume'lar. - Docker volume yedekleme ve taşıma: volume yedeğini alma, geri yükleme, makineler arasında taşıma ve NFS veya CIFS volume sürücüleri.
- Docker bind mount: host dizinlerini container'a bağlama, salt okunur bağlama, bind propagation ve SELinux etiketleri.
- tmpfs ve image mount: veriyi yalnızca bellekte tutan tmpfs bağlamaları ve bir imajın içeriğini container'a bağlama.
- Docker storage driver ve overlay2: depolama sürücüsü seçimi,
overlay2çalışma biçimi ve btrfs, zfs, vfs sürücülerine kısa bakış. - containerd image store: Engine 29 ile yeni kurulumlarda varsayılan olan containerd image store ve daemon içinde containerd çalıştırma.
4. Ağ
Docker container'ları farklı ağ sürücüleriyle birbirine ve dış dünyaya bağlar. Bir VPS'te en kritik konu, hangi portların gerçekten dışarı açıldığı ve Docker'ın güvenlik duvarıyla nasıl etkileştiğidir; bu grubu production'dan önce okumanızı öneririz.
- Docker network türleri: bridge, host, none ve diğer ağ sürücülerinin karşılaştırması ve hangisinin ne zaman kullanılacağı.
- Docker bridge network: varsayılan bridge ile kullanıcı tanımlı bridge farkı ve container adlarıyla DNS üzerinden ad çözümleme.
- Docker port yayınlama:
-pile port yayımlama, servisi127.0.0.1adresine bağlama,EXPOSEile farkı ve gateway modları. - Docker, iptables ve UFW: yayımlanan portların UFW kurallarını neden atladığı,
DOCKER-USERzinciri ve nftables arka ucu. - Docker macvlan ve ipvlan: container'lara fiziksel ağda kendi adreslerini veren macvlan ve ipvlan sürücüleri.
- Docker IPv6 yapılandırma: daemon ve bridge ağlarında IPv6'yı etkinleştirme ve adresleme ayarları.
5. İmaj oluşturma: Dockerfile ayrıntıları

Temel Dockerfile talimatlarını ve multi-stage build'i Dockerfile yazma rehberi yazısında anlattık. Bu grup, o temelin üzerine tek bir konuya derinlemesine odaklanan yazılardan oluşur.
- Docker build context ve .dockerignore: yerel, uzak ve Git build context'i,
.dockerignoresözdizimi ve adlandırılmış context'ler. - CMD ve ENTRYPOINT farkı: iki talimatın birlikte nasıl çalıştığı ve exec form ile shell form arasındaki fark.
- COPY ve ADD farkı: hangi talimatın ne zaman kullanılacağı ve dosyaları kopyalamadan bind mount ile kullanma.
- ARG ve ENV farkı: build ve çalışma zamanı değişkenlerinin kapsamı,
--build-argve önceden tanımlı ARG'ler. - Docker build secrets:
--secret,--sshveRUN --mount=type=secretile sırları imaja sızdırmadan kullanma. - Docker base image seçimi: base image seçimi, sürüm ve digest sabitleme,
--pullve--no-cachekullanımı.
6. BuildKit ve Buildx
Modern Docker build'leri BuildKit ile çalışır ve Buildx bu altyapının komut satırı arayüzüdür. Bu grup çok platformlu imajlar, önbellek arka uçları, Dockerfile denetimi, çıktı biçimleri ve Bake ile toplu build konularını içerir.
- BuildKit ve Buildx: BuildKit yapılandırması,
# syntax=ile frontend seçimi ve builder'ları yönetme. - Multi-platform build ve arm64:
--platform, QEMU emülasyonu, çapraz derleme ve containerd image store ile çok mimarili imajlar. - Docker build cache arka uçları: önbelleğin ne zaman geçersizleştiği, optimizasyon, çöp toplama ve gha, registry, local, inline arka uçları.
- Docker build check:
docker build --checkile Dockerfile denetimi, kurallar vecheck=skipilecheck=errorayarları. - Docker build output ve exporter:
--outputile build sonucunu local, tar, oci, docker veya image exporter'ına gönderme. - Docker Buildx Bake:
docker-bake.hclile target, group, değişken ve matrix tanımları ve Compose dosyasından bake.
7. Compose ileri konular
Compose'un temellerini başlangıç rehberinde, çok servisli kullanımı ve production ipuçlarını Docker Compose rehberinde anlattık. Bu grup, o yazılarda yüzeysel geçilen ileri Compose özelliklerine ayrılmıştır.
- Docker Compose watch: geliştirme sırasında dosya değişikliklerini izleyip
sync,rebuildveyasync+restarteylemlerini çalıştırma. - Compose secrets ve configs: parola ve yapılandırma dosyalarını Compose ile container'lara güvenli biçimde verme.
- Compose değişken interpolasyonu:
${VAR}sözdizimi, varsayılan değerler, değişken öncelik sırası veCOMPOSE_*ortam değişkenleri. - Compose include, extends ve merge: birden fazla Compose dosyasını birleştirme kuralları,
include,extends, fragment ve extension'lar. - Compose init container ve lifecycle hook: ana servisten önce çalışan init container'lar ve
post_start,pre_stopkancaları. - Compose deploy ve kaynak limitleri:
deployaltında kaynak limitleri ve rezervasyonları, restart policy, replicas ve GPU rezervasyonu.
8. Güvenlik, loglar, Swarm ve sürümler
Son grup, bir sunucuyu uzun süre sağlıklı tutmak için gereken konuları toplar: log yönetimi, daemon'ı root olmadan çalıştırma, daemon'a güvenli uzak erişim, birden fazla sunucuyu Swarm ile yönetme ve Engine 29'da nelerin değiştiği.
- Docker log boyutu ve log driver:
max-sizevemax-fileile log rotasyonu,json-file,localvejournaldsürücüleri ve dual logging. - Docker rootless mod: daemon'ı root olmayan bir kullanıcıyla çalıştırma, sınırlamalar, sorun giderme ve userns-remap ile farkı.
- Docker daemon uzak erişim, SSH ve TLS: daemon soketini ağa açmadan önce SSH veya TLS ile koruma.
- Docker Swarm kurulumu: swarm modu, temel kavramlar, node ekleme ve yönetme ve ingress routing mesh.
- Docker stack deploy: Compose dosyasıyla Swarm'a stack yayımlama, servis güncelleme ve Swarm secret ile config'lerine kısa bakış.
- Docker Engine 29 yenilikleri: 29.0.0'daki kırıcı değişiklikler ve 29.9.3'e kadar gelen yenilikler.
Mevcut temel yazılar ve ilgili rehberler
Bu seri, sitemizde daha önce yayımlanan temel Docker yazılarını tekrar etmez; onlara bağlantı verir. Docker serisinin dışında kalan ama Docker çalıştıran bir sunucuda işinize yarayacak rehberler de aşağıda.
- Docker ile uygulama deploy: Docker nedir, neden kullanılır, temel bir Dockerfile ve Compose ile production deploy.
- Dockerfile yazma rehberi: temel talimatlar, katman önbelleği ve Node.js ile Python örnekleriyle multi-stage build.
- Docker Compose başlangıç rehberi: tek servisli Compose dosyası,
up,logs,downve bind mount ile named volume farkı. - Docker Compose rehberi: çok servisli projeler, env dosyaları, ağlar, volume'lar, override dosyaları, healthcheck ve profiles.
- GitHub Actions CI/CD rehberi: imajı GitHub Actions ile build edip registry'ye gönderme.
- Kubernetes temelleri ve Portainer ile Docker yönetimi: container'ları daha büyük ölçekte veya bir arayüzle yönetmek isteyenler için.
- UFW güvenlik duvarı, VPS güvenlik sertleştirme, reverse proxy nedir, Linux kullanıcı ve grup yönetimi ve Linux loglarını okuma: Docker'ın çalıştığı sunucunun kendisi için.
Sık Sorulan Sorular
Docker'ı öğrenmeye hangi yazıyla başlamalıyım?
Docker'ın ne olduğunu bilmiyorsanız Docker ile uygulama deploy ile başlayın. Sunucunuza kurmaya hazırsanız Ubuntu kurulumu veya diğer dağıtımlar yazısıyla devam edin ve yukarıdaki "Nereden başlamalı?" sırasını izleyin.
Seri hangi Docker sürümünü esas alıyor?
Yazılar Docker Engine 29.9.3'e kadar olan resmî Docker belgelerine dayanır. Bir özelliğin Engine 29 ile geldiğini yalnızca sürüm notları öyle söylüyorsa belirtiyoruz; tüm değişikliklerin özeti Docker Engine 29 yenilikleri yazısında.
Swarm mı, Kubernetes mi öğrenmeliyim?
Bu seri Docker Engine ve Swarm üzerine kuruludur ve iki sistemi karşılaştırmaz. Swarm'ın temel kavramları Docker Swarm kurulumu yazısında, Kubernetes'in temelleri ise Kubernetes temelleri yazısında anlatılıyor; ihtiyacınıza göre ikisini birlikte okuyabilirsiniz.
Production sunucusu için mutlaka okunması gerekenler hangileri?
Docker belgelerinde güvenlik açısından öne çıkan konular şunlardır: docker grubunun root düzeyinde yetki vermesi (izinler), yayımlanan portların UFW'yi atlaması (firewall), servisleri 127.0.0.1 adresine bağlama (port yayınlama), daemon soketini koruma (uzak erişim) ve log rotasyonu (loglar).
Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.
İlgili içerikler: Docker Ubuntu kurulumu · sudo olmadan Docker · Compose plugin kurulumu · Docker ile uygulama deploy · Dockerfile yazma rehberi · Compose başlangıç rehberi · Docker Compose rehberi