Docker kurulumuyla ilgili internette dolaşan rehberlerin çoğu, birkaç yıl önceki Ubuntu sürümlerine göre yazılmış ve güncelliğini kaybetmiş durumda. Bazıları hâlâ eski GPG anahtarı yöntemini öneriyor, bazıları ise docker.io paketiyle resmi Docker deposu arasındaki farkı hiç açıklamıyor. Ubuntu 26.04 üzerinde temiz bir kurulum yapmak istiyorsanız, aşağıdaki adımları sırasıyla takip etmeniz yeterli.
İki Farklı Kurulum Yolu Var
Ubuntu’nun kendi depolarında docker.io adında bir paket bulunur. Bu paket, Canonical’ın kendi derlediği ve test ettiği bir sürümdür, kurulumu tek komutla biter ama genellikle Docker’ın kendi resmi deposundaki sürümden birkaç adım geridedir.
Docker’ın resmi APT deposunu kullanmak ise size en güncel Docker Engine sürümünü ve Compose plugin’ini garanti eder. Üretim ortamlarında ya da güncel özelliklere ihtiyaç duyduğunuz projelerde bu yöntemi tercih etmenizi öneririm.
Önceki Kurulumları Temizleyin
Sisteminizde eski bir Docker kalıntısı varsa önce onları temizlemek gerekir. Aksi halde çakışan paketler kurulumu bozabilir.
sudo apt remove docker docker-engine docker.io containerd runc
Bu komut bir hata verirse endişelenmeyin, muhtemelen ilgili paketlerden bazıları sisteminizde zaten yok demektir.
Gerekli Bağımlılıkları Kurun
Docker’ın resmi deposunu ekleyebilmek için önce bazı temel araçlara ihtiyacınız var:
sudo apt update
sudo apt install ca-certificates curl gnupg
Docker’ın GPG Anahtarını Ekleyin
Güvenlik açısından, deponun bütünlüğünü doğrulayacak GPG anahtarını sisteme tanıtmanız gerekiyor:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Bu adımı atlarsanız APT, depodan gelen paketlerin güvenilir olduğunu doğrulayamaz ve kurulum sırasında uyarı verir.
Depoyu Sisteme Tanıtın
Şimdi Docker’ın resmi APT deposunu kaynak listenize eklemeniz gerekiyor:
echo
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
Önemli not: Ubuntu 26.04’ün kod adı Docker’ın resmi deposunda henüz tam desteklenmiyorsa, $VERSION_CODENAME yerine önceki LTS sürümünün kod adını manuel olarak yazmanız gerekebilir. Docker’ın resmi deposu bazen yeni Ubuntu sürümlerini desteklemeye biraz zaman alıyor, bu durumda önceki LTS kod adını kullanmak genellikle sorunsuz çalışır.
Docker Engine ve Compose Plugin’ini Kurun
Depo tanımlandıktan sonra asıl kurulum tek komutla tamamlanır:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Buradaki docker-compose-plugin paketi dikkat çekici. Artık eski docker-compose (tire ile, ayrı bir Python aracı) yerine, Docker CLI’a entegre çalışan docker compose (boşlukla) komutunu kullanıyoruz. Bu ayrımı bilmemek, ileride komut bulunamadı hatalarıyla karşılaşmanıza sebep olabilir.
Kurulumu Doğrulayın
Docker’ın düzgün kurulduğunu kontrol etmek için:
sudo docker run hello-world
Bu komut, Docker Hub’dan küçük bir test imajı indirir ve çalıştırır. Terminalde “Hello from Docker!” mesajını görürseniz kurulum başarılı demektir.
Compose plugin’inin çalıştığını görmek için de:
docker compose version
sudo Kullanmadan Docker Çalıştırmak
Her Docker komutunda sudo yazmak can sıkıcı olabilir. Kullanıcınızı docker grubuna ekleyerek bundan kurtulabilirsiniz:
sudo usermod -aG docker $USER
Bu değişikliğin etkili olması için oturumu kapatıp açmanız, ya da terminalde şu komutu çalıştırmanız gerekir:
newgrp docker
Docker grubuna eklenen bir kullanıcı, sistemde kök yetkisine yakın bir erişime sahip olur. Docker soketi üzerinden konteyner çalıştırabilme yeteneği, dolaylı olarak dosya sistemine root gibi erişebilmek anlamına gelir. Bu yüzden bu grubu sadece güvendiğiniz kullanıcılara ekleyin.
Docker’ın Açılışta Başlamasını Ayarlamak
Docker servisinin sistem açılışında otomatik başlaması genellikle istenen bir durumdur:
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Servisin durumunu kontrol etmek isterseniz:
systemctl status docker
Basit Bir Docker Compose Denemesi
Kurulumu gerçekten test etmek için basit bir docker-compose.yml dosyası oluşturabilirsiniz:
version: "3.9"
services:
web:
image: nginx:latest
ports:
- "8080:80"
Bu dosyanın bulunduğu dizinde şu komutu çalıştırın:
docker compose up -d
Tarayıcınızdan localhost:8080 adresine gittiğinizde nginx’in karşılama sayfasını görmeniz gerekir. Servisi durdurmak için:
docker compose down
Sık Karşılaşılan Sorunlar
- Depo eklenirken kod adı uyuşmazlığı yaşanabilir; bu durumda Docker’ın resmi deposunun desteklediği en son kararlı kod adını kullanmayı deneyin.
- “permission denied” hatası alıyorsanız, kullanıcınızı
dockergrubuna eklediğinizden ve oturumu yeniden başlattığınızdan emin olun. docker-composekomutu bulunamadı hatası veriyorsa, eski standalone aracı değildocker compose(boşluklu) komutunu kullandığınızdan emin olun.
Kurulum bittikten sonra sisteminizde çalışan konteynerleri düzenli olarak docker ps ile kontrol etmek, kullanılmayan imajları da docker system prune ile temizlemek iyi bir alışkanlık. Disk alanı zamanla eski imaj katmanlarıyla dolabiliyor ve bunu fark etmek genellikle diskiniz gerçekten dolduğunda oluyor.