Linux'a Docker Kurulumu: Ubuntu, Debian, RHEL Rehberi | INTROSERV
EUR
european

EUR

usa

USD

Turkish Tr
Ex. VAT Ex. VAT 0%

Popüler Linux Dağıtımlarına Docker Kurulumu: Linux Docker Kurulum Rehberi

Seviye: Orta
Tahmini süre: ~15 dakika
Hedef: Nextcloud, Bitwarden ve Matrix gibi kişisel hizmetleri kendi sunucunuzda barındırmak (self-hosting) için Docker'ı kurarak güvenli ve merkeziyetsiz bir ortam yapılandırmak.

Giriş

Kendi "bulut" hizmetlerinizi barındırmak gizliliği ve verilerin tam sahipliğini garanti eder. Nextcloud (dosya depolama), Bitwarden (parola yönetimi) veya Matrix (güvenli iletişim) gibi hizmetleri, karmaşık ana makine düzeyindeki bağımlılıklarla uğraşmadan dağıtmak için yalıtılmış ortamlara ihtiyacınız vardır. Bu eğitimde, sağlam ve tekrarlanabilir bir self-hosting temeli oluşturmak için Linux'a Docker nasıl kurulur göreceğiz. İster tek bir sunucu ister bir sunucu filosu için eksiksiz bir Linux'ta Docker kurulumu gerekiyor olsun, aşağıdaki her adım Ubuntu, Debian ve RHEL uyumlu dağıtımlar için geçerlidir. Bu Linux Docker kurulum rehberinin sonunda, en iyi uygulamalara uygun güvenli varsayılanlarla yapılandırılmış, üretime hazır bir ortama sahip olacaksınız.

Terminoloji

Devam etmeden önce şu temel kavramları anladığınızdan emin olun:

  • Docker: Uygulamaları yalıtılmış ortamlarda geliştirmek, dağıtmak ve çalıştırmak için kullanılan bir platform.
  • Docker Engine: Konteynerleri oluşturan ve çalıştıran temel istemci-sunucu teknolojisi.
  • Konteyner (Container): Bir uygulamanın kaynak kodunu, çalışması için gereken işletim sistemi kütüphaneleri ve bağımlılıklarla birleştiren standartlaştırılmış, çalıştırılabilir bileşen.
  • İmaj (Image): Bir konteynerin nasıl oluşturulacağına dair talimatlar içeren salt okunur şablon.
  • Docker daemon: Ana makinede arka planda çalışan ve konteynerlerin oluşturulmasını, çalıştırılmasını ve dağıtılmasını yöneten hizmet.
  • Docker CLI: Daemon ile etkileşim kurmak için kullanılan komut satırı arayüzü.
  • Docker Hub: Konteyner imajlarını bulmak ve paylaşmak için Docker tarafından işletilen genel kayıt defteri.
  • Kayıt defteri (Registry): Konteyner imajları için bir depolama ve dağıtım sistemi.
  • Kurulum: Programları çalıştırmaya hazır hale getirme süreci.
  • Paket yöneticisi: Programların kurulmasını, yükseltilmesini, yapılandırılmasını ve kaldırılmasını otomatikleştiren yazılım aracı.
  • Depo (Repository): Yazılım paketlerinin saklandığı ve bakımının yapıldığı merkezi konum.
  • Resmi Docker deposu: Kararlı yazılım paketlerini edinmek için Docker tarafından işletilen güvenilir kaynak.
  • Paket: Belirli bir uygulamayla birlikte gelen tüm dosyaları içeren sıkıştırılmış dosya arşivi.
  • Bağımlılık: Başka bir programın doğru çalışması için gereken program veya kütüphane.
  • Kararlı sürüm (Stable release): Kapsamlı biçimde test edilmiş ve üretimde kullanım için güvenilir kabul edilen yazılım sürümü.
  • Sürüm: Yazılımın belirli özelliklerini ve düzeltmelerini yansıtan benzersiz durumu.

Ön koşullar

Başlamadan önce aşağıdaki koşulların karşılandığından emin olun:

  • İşletim sistemi: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 veya RHEL uyumlu (AlmaLinux, Rocky, RHEL) 8/9/10
  • Erişim: Sunucuya sudo veya root erişimi
  • Gerekli bilgi: Linux komut satırını rahatça kullanabilme

Adım 1: Docker deposunu ayarlama

En güncel, güvenli ve kararlı sürümü almak için varsayılan işletim sistemi depoları yerine her zaman resmi Docker deposunu kullanın.

Ubuntu için:

Önce Linux paket yöneticisi dizinini güncelleyin ve apt'in HTTPS üzerinden bir depo kullanabilmesi için gerekli paketleri kurun:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Docker'ın resmi GPG anahtarını ekleyin:

sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Kararlı depoyu ayarlayın:

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Debian için:

Debian'a Docker kurulum adımları Ubuntu akışını yansıtır, ancak Debian'a özgü depo URL'sini kullanır. Önce Linux paket yöneticisi dizinini güncelleyin ve gerekli paketleri kurun:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Docker'ın resmi GPG anahtarını ekleyin:

sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Kararlı depoyu ayarlayın:

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

RHEL uyumlu sistemler için (AlmaLinux, Rocky, RHEL):

yum-utils paketini kurun ve kararlı depoyu ayarlayın:

sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

Info

Docker, tüm RHEL uyumlu dağıtımlar (AlmaLinux ve Rocky Linux dahil) için paketleri centos depo yolu altında yayımlar. Bu URL'nin kullanılması beklenen ve tam olarak desteklenen bir durumdur.

Sonuç: Docker deposu artık sisteminize eklendi ve paket yöneticisinin en güncel Docker paketlerini almasını sağlıyor.

Adım 2: Ubuntu ve Debian'a Docker kurulumu

Docker deposu yapılandırıldıktan sonra Ubuntu'ya Docker Engine kurulumuna (veya Debian'a - komutlar aynıdır) geçin. Bu adım her iki dağıtım için de geçerlidir.

Önce işletim sistemi depolarının sağladığı çakışan paketleri kaldırın:

sudo apt remove docker.io podman-docker containerd runc

apt paket dizinini yeniden güncelleyin ve Linux paket yöneticisiyle gerekli bileşenleri kurun:

sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin

Sonuç: Komut çalışır; paketleri ve gerekli tüm bağımlılıkları Docker deposundan getirir. Paket yöneticisinin Docker Engine kurulumunu hatasız tamamlaması gerekir.

Info

docker-ce, Docker Community Edition anlamına gelir; kendi sunucusunda barındıranlar için ideal olan ücretsiz sürümdür.

Adım 3: RHEL uyumlu sistemlere Docker kurulumu (AlmaLinux, Rocky, RHEL)

RHEL tabanlı sistemlerde Docker Engine'i kurmak için yum kullanın.

Önce işletim sistemi depolarının sağladığı çakışan paketleri kaldırın:

sudo yum remove docker docker-client docker-client-latest docker-common \ docker-latest docker-latest-logrotate docker-logrotate docker-engine \ podman runc

Aşağıdaki komutu çalıştırın:

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin

Sonuç: Paket yöneticisi gerekli paketleri kurar. GPG anahtarını kabul etmeniz istenecektir (-y bayrağını kullanmadıysanız); onaylayın. İşlem tamamlandığında bir başarı mesajı görürsünüz.

Adım 4: Docker Engine kurulumunun doğrulanması

Kurulumdan sonra Docker daemon'ın davranışı dağıtıma göre değişir. Ubuntu ve Debian'da docker.service kurulumun ardından otomatik olarak başlar. RHEL ailesi dağıtımlarında başlamaz.

Warning

Yalnızca RHEL ailesi: Kurulum işlemi çekirdeği güncellediyse (örneğin bir kernel-core bağımlılığı aracılığıyla), Docker hizmetini başlatmadan önce sunucuyu yeniden başlatın:

sudo reboot

Bu adımın atlanması, çalışan çekirdek kurulu modüllerle artık eşleşmediği için systemctl start docker komutunun br_netfilter / addrtype hatalarıyla başarısız olmasına yol açabilir.

Sunucu güncel çekirdekle çalışmaya başladıktan sonra hizmeti başlatın ve etkinleştirin. Aşağıdaki komutlar idempotenttir ve tüm sistemlerde çalıştırılması güvenlidir:

sudo systemctl start docker sudo systemctl enable docker

Sonuç: Docker daemon başlar ve sistem, her yeniden başlatmada otomatik olarak çalışmasını sağlamak için bir sembolik bağ oluşturur.

hello-world imajını çalıştırarak Docker Engine kurulumunun başarılı olduğunu doğrulayın:

sudo docker run hello-world

Sonuç: Docker CLI, Docker daemon ile iletişim kurar, hello-world imajını Docker Hub'dan çeker ve bir konteyner çalıştırır. Terminalinizde "Hello from Docker!" mesajını görmelisiniz.

Adım 5: Docker kurulum sonrası adımlar

Varsayılan olarak Docker komutlarını çalıştırmak sudo gerektirir. Docker komutlarını root olmayan bir kullanıcı olarak çalıştırmak için kullanıcınızı docker grubuna eklemeniz gerekir. Bunlar, kendi barındırdığınız altyapıyı rahatça yönetmek için gerekli temel Docker kurulum sonrası adımlardır.

docker grubunu oluşturun (henüz yoksa):

getent group docker || sudo groupadd docker

Kullanıcınızı docker grubuna ekleyin:

sudo usermod -aG docker $USER

Sonuç: Kullanıcınız gruba eklenir. Değişikliklerin geçerli olması için oturumu kapatıp yeniden açmanız veya yeni grup üyeliğini mevcut oturumda etkinleştirmeniz gerekir:

newgrp docker

Info

newgrp docker, güncellenmiş grup üyeliğine sahip yeni bir kabuk (shell) oluşturur. Bundan sonra çalıştırdığınız her docker komutu sudo olmadan çalışır, ancak yalnızca bu yeni kabuğun içinde. Başka bir terminal açmak yine tam bir yeniden oturum açma gerektirir.

Warning

Docker grubuna üyelik, ana makinede root erişimine eşdeğer ayrıcalıklar verir. Güvenliği önceleyen self-hosting ortamlarında Docker'ı rootless modda çalıştırmayı ciddi biçimde değerlendirin (bkz. Adım 6).

newgrp docker komutunu çalıştırdıktan sonra (veya oturumu kapatıp yeniden açtıktan sonra) yapılandırmayı sudo olmadan bir komut çalıştırarak test edin:

docker run hello-world

Sonuç: "Hello from Docker!" mesajını yeniden görmelisiniz; bu, Docker kurulum sonrası adımlarınızın başarılı olduğunu doğrular.

Alternatif: Kolaylık betiğiyle hızlı kurulum

Test veya geliştirme ortamları için Docker bir kolaylık betiği (convenience script) sunar.

Warning

Bu yöntem üretim için önerilmez. Sürüm sabitleme olmadan çalışır, Docker zaten kuruluysa koşulsuz yükseltme yapar ve tüm bağımlılıkları doğrulama olmadan çeker.

Betiği indirip çalıştırmadan önce incelemeniz önerilir:

curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh

Adım 6 (İsteğe bağlı): Docker'ı rootless modda çalıştırma

Self-hosting ortamlarında Docker'ı rootless modda çalıştırmak, Docker daemon'ı ve konteynerleri root olmayan bir kullanıcı olarak yürüterek güvenliği artırır.

6.1 Ön koşullar

Önce sistem genelindeki Docker hizmetini ve soketini durdurup devre dışı bırakın, ardından soket dosyasını kaldırın:

sudo systemctl stop docker.service docker.socket sudo systemctl disable docker.service docker.socket sudo rm -f /var/run/docker.sock

Kullanıcınız için subuid ve subgid değerlerinin yapılandırıldığını doğrulayın (genellikle otomatik olarak ayarlanır):

cat /etc/subuid cat /etc/subgid

Daemon'ın sistem açılışında başlayabilmesi için kullanıcınız adına lingering'i etkinleştirin:

sudo loginctl enable-linger $USER

6.2 Ek paketlerin kurulumu

Ubuntu/Debian için:

sudo apt install docker-ce-rootless-extras uidmap dbus-user-session

AlmaLinux/RHEL için (shadow-utils, uidmap sağlar ve genellikle önceden kuruludur):

sudo yum install docker-ce-rootless-extras

6.3 Rootless daemon'ın kurulumu

Kurulum betiğini hedef kullanıcının tam bir oturum açma (login) oturumundan çalıştırın (sudo su veya oturum açmayan bir SSH kabuğundan değil). Oturum açmayan bir bağlamdaysanız önce gerekli değişkenleri dışa aktarın:

export XDG_RUNTIME_DIR=/run/user/$(id -u) export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus

Ardından kurulum betiğini çalıştırın:

dockerd-rootless-setuptool.sh install

Info

Kurulum betiğinin linger etkinleştirildikten hemen sonraki ilk çalıştırması kararsız olabilir. Daemon başlamazsa kurulum betiğini yeniden çalıştırmanız yeterlidir.

6.4 Ortam değişkenlerinin yapılandırılması

Aşağıdaki değişkenleri kabuk yapılandırma dosyanıza (örn. ~/.bashrc) ekleyin:

export PATH=/usr/bin:$PATH export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock

Değişikliklerin uygulanması için dosyayı yeniden yükleyin (source) veya kabuğu yeniden başlatın.

6.5 Rootless modun sınırlamaları

  • 1024'ten küçük portlar yayımlanamaz (Docker, setcap, slirp4netns port yönlendirme veya yönlendirme gibi çözümler sunar).
  • --net=host desteği yoktur.
  • Swarm modu ve overlay ağlar desteklenmez.
  • AppArmor desteklenmez.
  • --privileged bayrağı ana makine düzeyinde root erişimi vermez.
  • Veriler ~/.local/share/docker dizininde saklanır (yedekleme ve kotalar için bunu göz önünde bulundurun).
  • cgroup v2 gerektirir.
  • overlay2 yerine overlayfs depolama sürücüsünü kullanır.

Geri alma (rollback)

Standart bir kurulum ya da rootless yapılandırma olsun, Linux'taki Docker kurulumunu geri almanız gerekirse aşağıdaki adımları sırasıyla izleyin.

1. Rootless geri alma (rootless yapılandırılmadıysa atlayın):

Rootless modu yapılandırdıysanız, paketleri kaldırmadan önce bu değişiklikleri geri alın:

dockerd-rootless-setuptool.sh uninstall rm -rf ~/.local/share/docker sudo loginctl disable-linger $USER

Info

Paketler tamamen kaldırıldıktan (purge) sonra rootless kaldırma işlemini çalıştırmak başarısız olur, çünkü kurulum betiği docker-ce-rootless-extras paketinin bir parçasıdır. Rootless modu her zaman paketler hâlâ mevcutken kaldırın.

2. Paketleri kaldırma:

Debian/Ubuntu:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.gpg

AlmaLinux/Rocky/RHEL:

sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/yum.repos.d/docker-ce.repo

3. Grubu kaldırma:

sudo groupdel docker || true

Warning

Paketlerin kaldırılması imajları, konteynerleri, birimleri (volumes) veya özelleştirilmiş yapılandırma dosyalarını otomatik olarak silmez. rm -rf komutları bu veri dizinlerini kalıcı olarak siler.

Sonuç

Linux'taki Docker kurulumunuz tamamlandı ve doğrulandı. Temel artık güvenli biçimde hazır. Kendi barındırdığınız araçlar için konteynerleri dağıtmaya geçebilir; Nextcloud dosyalarınız, Bitwarden kasalarınız ve Matrix iletişiminiz üzerinde tam denetimi elinizde tutabilirsiniz.

Belge sürümü: 1.0
Son güncelleme: Mayıs 2026
Sahibi: Teknik Dokümantasyon Ekibi

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA