Docker Engine'i Debian, Fedora, RHEL veya CentOS Stream üzerine kurmanın önerilen yolu, Ubuntu'da olduğu gibi Docker'ın kendi paket deposunu eklemek ve aynı beş paketi (docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin, docker-compose-plugin) bu depodan kurmaktır. Debian apt, Fedora, RHEL ve CentOS ise dnf kullanır. En önemli pratik fark şudur: RPM tabanlı dağıtımlarda kurulum Docker'ı başlatmaz; servisi systemctl enable --now docker ile kendiniz açmanız gerekir.
Bu yazıda Docker belgelerindeki dağıtıma özel kurulum sayfalarını karşılaştırarak anlatıyoruz: hangi sürümlerin desteklendiği, kaldırılması gereken çakışan paketler, depo kurulum komutları, GPG anahtar doğrulaması, sürüm sabitleme, Raspberry Pi OS 32 bit desteğinin sona ermesi ve statik binary kurulumunun neden production için önerilmediği. Ubuntu için ayrı ve daha ayrıntılı bir yazımız var: Docker Ubuntu kurulumu.
Hangi dağıtım, hangi mimari?

Docker'ın kurulum genel bakış sayfası, her dağıtım için desteklenen işlemci mimarilerini bir tabloda verir. Aşağıdaki tablo bu bilgiyi özetler:
| Platform | x86_64 / amd64 | arm64 / aarch64 | arm (32 bit) | ppc64le | s390x |
|---|---|---|---|---|---|
| CentOS | Evet | Evet | Hayır | Evet | Hayır |
| Debian | Evet | Evet | Evet | Evet | Hayır |
| Fedora | Evet | Evet | Hayır | Evet | Hayır |
| Raspberry Pi OS (32 bit) | Hayır | Hayır | Uyarılı | Hayır | Hayır |
| RHEL | Evet | Evet | Hayır | Hayır | Evet |
| Ubuntu | Evet | Evet | Evet | Evet | Evet |
| Binaries | Evet | Evet | Evet | Hayır | Hayır |
Desteklenen işletim sistemi sürümleri de sayfalarda tek tek listelenir. Debian için Debian Trixie 13 (stable) ve Debian Bookworm 12 (oldstable); Fedora için bakımı süren Fedora 45, 44 ve 43; RHEL için RHEL 8, 9 ve 10; CentOS için CentOS Stream 10 ve CentOS Stream 9. CentOS sayfası ayrıca centos-extras deposunun etkin olması gerektiğini belirtir; bu depo varsayılan olarak açıktır, siz kapattıysanız yeniden etkinleştirmeniz gerekir.
Türev dağıtımlar için kural basittir: Debian türevleri (BunsenLabs Linux, Kali Linux, LMDE gibi) Debian talimatlarını, Ubuntu türevleri Ubuntu talimatlarını izler ve sürüm adını karşılık gelen ana dağıtım sürümüyle değiştirir. Belgeler bu talimatların türevlerde çalışabileceğini ancak Docker'ın türevleri test etmediğini vurgular. Bazı dağıtımlar da kendi depolarında bir Docker Engine paketi sunar; bunlar dağıtımın paket bakımcıları tarafından hazırlanır, yapılandırması farklı olabilir veya değiştirilmiş kaynak koddan derlenmiş olabilir. Böyle bir paketteki sorunları Docker'a değil, dağıtımın hata takip sistemine bildirmeniz gerekir.
Debian: apt deposu ile kurulum
Debian adımları Ubuntu ile neredeyse aynıdır. Önce resmî olmayan paketleri kaldırın. Debian listesi docker.io, docker-compose, docker-doc, docker-buildx ve podman-docker paketlerinden oluşur; Ubuntu'daki docker-compose-v2 burada yer almaz. Daha önce ayrı kurduğunuz containerd ve runc paketleri de kaldırılmalıdır, çünkü Docker bunları containerd.io paketiyle birlikte getirir.
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-doc docker-buildx podman-docker containerd runc | cut -f1)
# Docker'ın resmî GPG anahtarını ekleyin:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Depoyu apt kaynaklarına ekleyin:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginUbuntu'dan tek farkı Suites satırıdır: Debian'da yalnızca VERSION_CODENAME okunur. Debian testing veya Kali Linux gibi bir türev kullanıyorsanız belgeler bu ifadenin yerine karşılık gelen Debian sürümünün kod adını (örneğin trixie) elle yazmanızı önerir; aksi halde depoda bulunmayan bir kod adı yazılabilir. Belirli sürüm kurmak için apt list --all-versions docker-ce ile listeleyip docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING biçimini kullanırsınız; Debian sürüm dizeleri -1~debian.12~bookworm gibi bir sonekle biter.
Kurulumdan sonra sudo systemctl status docker ile servisin çalıştığını kontrol edin, çalışmıyorsa sudo systemctl start docker ile başlatın, ardından sudo docker run hello-world ile doğrulayın. Kurulum sonrası adımlar sayfasına göre Debian ve Ubuntu'da Docker servisi açılışta varsayılan olarak başlar.
Fedora: dnf deposu ile kurulum
Fedora'da önce eski paket adlarıyla gelen Docker paketlerini kaldırırsınız. Bu liste Debian'dakinden farklıdır, çünkü RPM dünyasında paket adları farklıdır:
sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now dockerKurulum sırasında GPG anahtarını kabul etmeniz istenirse belgeler parmak izinin 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 ile eşleştiğini kontrol etmenizi, eşleşiyorsa kabul etmenizi söyler. Bu kontrol, depo yerine sahte bir anahtarın araya girmediğinden emin olmanın yoludur.
Kurulum komutu Docker'ı başlatmaz; bir docker grubu oluşturur ama varsayılan olarak hiçbir kullanıcıyı bu gruba eklemez. systemctl enable --now docker servisi hem hemen başlatır hem de açılışta başlayacak şekilde ayarlar. Otomatik başlamasını istemiyorsanız yalnızca sudo systemctl start docker kullanın.
Fedora sayfasında bir sorun giderme notu da yer alır: servis başlamazsa ve journalctl -u docker çıktısında failed to find iptables görürseniz, iptables komutunu alternatives ile iptables-nft sürümüne yönlendirip servisi yeniden başlatmanız önerilir:
sudo alternatives --set iptables /usr/bin/iptables-nft
sudo systemctl restart dockerRHEL ve CentOS Stream: dnf-plugins-core ile depo
RHEL ve CentOS Stream'de depo eklemek için önce dnf-plugins-core paketini kurarsınız; bu paket DNF depolarını yöneten komutları sağlar. Depo komutunun yazımı Fedora'dakinden farklıdır (--add-repo):
# RHEL
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
# CentOS Stream
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now dockerRHEL'de kaldırılacak paket listesi Fedora'dakine benzer ama docker-selinux satırları yerine podman ve runc içerir. Bu önemli bir ayrıntıdır: RHEL üzerinde Podman kuruluysa Docker kurulumundan önce kaldırılması istenir. CentOS listesi ise docker-engine ile biter. Her iki dağıtımda da GPG parmak izi kontrolü ve "kurulum Docker'ı başlatmaz, grup oluşturur ama kullanıcı eklemez" notu aynen geçerlidir.
Belirli bir sürümü kurmak (RPM)
RPM tabanlı dağıtımlarda sürümleri şu komutla listelersiniz:
dnf list docker-ce --showduplicates | sort -r
sudo dnf install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-pluginListenin ikinci sütunu sürüm dizesidir ve dağıtıma özgü bir sonek taşır (RHEL örneğinde .el9, Fedora örneğinde .fc41 gibi). Tam nitelikli paket adı, paket adı ile bu sürüm dizesinin tire ile birleştirilmesinden oluşur. Dönen liste etkin depolara bağlıdır ve sizin dağıtım sürümünüze özgüdür.
İnternet erişimi olmayan sunucular: paket dosyasıyla kurulum
Fedora, RHEL ve CentOS sayfaları, depo yerine RPM paketini indirip elle kurmayı özellikle internet erişimi olmayan (air-gapped) sistemler için uygun bulur. RHEL'de https://download.docker.com/linux/rhel/ altında sürümünüzü ve mimarinizi (x86_64, aarch64 veya s390x) seçip stable/Packages/ klasöründen beş paketi indirirsiniz:
sudo dnf install ./containerd.io-<version>.<arch>.rpm \
./docker-ce-<version>.<arch>.rpm \
./docker-ce-cli-<version>.<arch>.rpm \
./docker-buildx-plugin-<version>.<arch>.rpm \
./docker-compose-plugin-<version>.<arch>.rpm
sudo systemctl enable --now dockerGüncellerken yeni paket dosyalarını indirip aynı adımı tekrarlarsınız; belgeler RPM paketleri için bu adımda dnf install yerine dnf upgrade kullanılmasını söyler. Debian'da ise aynı iş .deb dosyaları ve dpkg -i ile yapılır; her güncellemede yeni dosyalar indirilir.
Raspberry Pi OS 32 bit: Engine 29 ile destek bitti

Raspberry Pi kullanıyorsanız bu bölüm önemlidir. Belgelere göre Docker Engine v28, Raspberry Pi OS 32 bit (armhf) için paket sunan son ana sürümdür; v29 ile birlikte bu platform için yeni ana sürüm paketleri yayımlanmaz. Engine 29.0.0 sürüm notları da bunu kırıcı değişiklik olarak listeler: resmî Raspbian (32 bit) paketleri artık sağlanmaz, Debian armhf paketleri de ARMv7 işlemcileri hedefler ve ARMv6 cihazlarda çalışmaz.
- 64 bit ARM cihazlar: Debian
arm64paketlerini kullanın; belgelere göre tam desteklidir ve kurulum Debian talimatlarıyla yapılır. - 32 bit ARMv7 cihazlar: Debian
armhfpaketlerini kullanın. - ARMv6 cihazlar: Raspberry Pi 1 (Model A, B, A+, B+), Raspberry Pi Zero ve Zero W resmî paketlerle artık desteklenmez.
64 bit Raspberry Pi OS kullanıyorsanız Raspberry Pi sayfası zaten Debian talimatlarını izlemenizi söyler. Mevcut 32 bit kurulumunuz v28'de kalabilir, ancak v29 ve sonrasındaki ana sürümleri bu paket kaynağından alamazsınız.
Statik binary ile kurulum: neden production için değil?
Desteklenmeyen bir platformdaysanız Docker'ı statik binary dosyalarından da kurabilirsiniz, ancak belgeler bunun büyük ölçüde test amaçlı olduğunu açıkça yazar. Gerekçeler şunlardır: binary kurulumlar otomatik güvenlik güncellemesi almaz; Linux binary'leri statik olarak bağlandığı için derleme zamanındaki bağımlılıklardaki açıklar dağıtımınızın güvenlik güncellemeleriyle kapanmaz; güncelleme her yeni sürümde elle yapılır; statik binary'ler dinamik paketlerin sunduğu tüm işlevleri içermeyebilir.
Yine de bu yolu seçerseniz önkoşullar şunlardır: 64 bit kurulum, Linux çekirdeği 3.10 veya üstü, iptables 1.4 veya üstü, git 1.7 veya üstü, bir ps çalıştırılabilir dosyası, XZ Utils 4.9 veya üstü ve düzgün bağlanmış bir cgroupfs hiyerarşisi. Belgeler SELinux veya AppArmor varsa açık tutmanızı, sorun çıkarsa kapatmak yerine doğru yapılandırmanızı, mümkünse seccomp profillerini ve user namespace'leri etkinleştirmenizi önerir.
tar xzvf /path/to/<FILE>.tar.gz
sudo cp docker/* /usr/bin/
sudo dockerd &
sudo docker run hello-worldArşiv açıldığında dockerd ve docker dosyaları çıkar. Ek seçenek gerekiyorsa komuta bayrak ekleyebilir veya /etc/docker/daemon.json dosyası oluşturabilirsiniz; bu dosyanın yapısı daemon.json yapılandırma yazısında. Güncellemek için önce çalışan dockerd süreçlerini durdurur, sonra yeni sürümü mevcut kurulumun üzerine aynı adımlarla kurarsınız.
Dağıtımlar arasındaki farklar bir bakışta

| Dağıtım | Paket yöneticisi | Depo ekleme | Kurulumdan sonra servis |
|---|---|---|---|
| Debian | apt | GPG anahtarı + docker.sources dosyası | Açılışta varsayılan olarak başlar |
| Fedora | dnf | dnf config-manager addrepo --from-repofile | Başlatılmaz, systemctl enable --now gerekir |
| RHEL | dnf | dnf-plugins-core + dnf config-manager --add-repo | Başlatılmaz, systemctl enable --now gerekir |
| CentOS Stream | dnf | dnf-plugins-core + dnf config-manager --add-repo | Başlatılmaz, systemctl enable --now gerekir |
| Raspberry Pi OS 32 bit | apt-get | docker.list dosyası | v29 ve sonrası için paket yok |
Kaldırma: paketler, veriler ve yapılandırma
Kaldırma mantığı her dağıtımda aynıdır: önce paketler, sonra veriler. Debian'da apt purge, RPM dağıtımlarında dnf remove kullanılır:
# Debian
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm /etc/apt/sources.list.d/docker.sources
sudo rm /etc/apt/keyrings/docker.asc
# Fedora, RHEL, CentOS
sudo dnf remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
# Tüm imaj, container ve volume verisi (geri alınamaz)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerdPaketleri kaldırmak imajları, container'ları, volume'ları ve sizin düzenlediğiniz yapılandırma dosyalarını silmez. Veri dizinlerini silmeden önce saklamak istediğiniz volume'ları yedeklemeyi unutmayın.
Sık yapılan hatalar
- RPM dağıtımında servisi başlatmayı unutmak: Fedora, RHEL ve CentOS'ta kurulum Docker'ı başlatmaz. Ardından gelen "Cannot connect" hatası için daemon bağlantı hatası yazısına bakın.
- Türevde yanlış kod adı: Kali veya Debian testing gibi sistemlerde
VERSION_CODENAMEdepoda olmayan bir değer döndürebilir; belgeler karşılık gelen Debian kod adını elle yazmayı önerir. - GPG parmak izini kontrol etmeden kabul etmek: belgeler kabul etmeden önce parmak izini karşılaştırmanızı ister.
- RHEL'de Podman ile çakışma: RHEL kaldırma listesi
podmanveruncpaketlerini de içerir. - Production'da statik binary: otomatik güvenlik güncellemesi olmadığı için belgeler önermez.
- Grubun hazır olduğunu sanıp kullanıcı eklememek: RPM kurulumu
dockergrubunu oluşturur ama kimseyi eklemez. Grubun güvenlik anlamı için sudo olmadan Docker yazısını okuyun.
Sık Sorulan Sorular
Rocky Linux veya AlmaLinux için hangi talimatları izlemeliyim?
Docker belgelerinin kurulum sayfaları bu iki dağıtımı ayrıca listelemez. Belgeler türev dağıtımlarda talimatların çalışabileceğini ama Docker'ın bunları test etmediğini söyler; bu nedenle kendi dağıtımınızın hangi sürüme karşılık geldiğini dağıtım belgelerinden kontrol etmeniz gerekir.
Fedora'da docker komutu çalışıyor ama container başlatamıyorum, neden?
Büyük olasılıkla daemon çalışmıyordur, çünkü RPM kurulumu servisi başlatmaz. sudo systemctl enable --now docker ile başlatın; başlamazsa journalctl -u docker çıktısına bakın.
Kurulumdan sonra Docker'ın açılışta başlaması için ne yapmalıyım?
systemd kullanan dağıtımlarda kurulum sonrası sayfası sudo systemctl enable docker.service ve sudo systemctl enable containerd.service komutlarını verir; geri almak için disable kullanılır. Debian ve Ubuntu'da bu zaten varsayılandır.
Raspberry Pi 4 üzerinde Docker 29 kurabilir miyim?
64 bit işletim sistemi kullanıyorsanız belgelere göre Debian arm64 paketleri tam desteklidir ve Debian talimatlarını izlersiniz. 32 bit Raspberry Pi OS için v29 paketleri yayımlanmaz; ARMv7 cihazlarda Debian armhf paketleri önerilir.
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 öğrenme rehberi · Docker Ubuntu kurulumu · sudo olmadan Docker · Compose plugin kurulumu · daemon bağlantı hatası · Docker ile uygulama deploy