İçeriğe geç

Rehber

Docker kurulumu ve ilk konteyneri çalıştırma: Linux üzerinde adım adım

Docker'ı bir Ubuntu/Linux sunucusuna resmî apt deposundan kurmak, ilk konteyneri çalıştırmak ve kurulum sonrası doğru yapılandırmak için tam rehber.

4 dk okumaBaşlangıç seviyesi
Docker kurulumu ve ilk konteyneri çalıştırma: Linux üzerinde adım adım — editoryal kapak görseli

Docker, uygulamaları ve bağımlılıklarını izole 'konteyner'ler içinde paketleyip her ortamda aynı şekilde çalıştırmayı sağlayan bir platformdur. Bu rehber, bir Ubuntu/Debian tabanlı Linux sunucusuna Docker Engine'i resmî apt deposundan kurmaktan ilk konteyneri çalıştırmaya, kurulum sonrası güvenlik ayarlarına kadar tüm süreci komutlarla gösteriyor.

Docker CLI, Docker daemon ve registry arasındaki ilişkiyi gösteren mimari diyagram
Docker mimarisi: Docker CLI istemcisi, arka planda çalışan Docker daemon'a (dockerd) komut gönderir; daemon imajları çeker, konteynerleri oluşturur ve ağ/depolama kaynaklarını yönetir.

Docker nasıl çalışır?

Docker'ın mimarisi üç ana parçadan oluşur: siz komut yazdığınız Docker CLI (istemci), arka planda sürekli çalışan Docker daemon (dockerd) ve imajların indirildiği kayıt defteri (registry — varsayılan olarak Docker Hub). CLI'a yazdığınız her `docker` komutu aslında daemon'a bir API isteği gönderir; daemon bu isteği işleyip konteyneri oluşturur, ağını kurar ve depolama katmanlarını yönetir. Bu ayrım önemlidir çünkü daemon'a erişimi olan herkes — doğrudan veya docker grubu üyeliği üzerinden — konteyner çalıştırma yetkisine sahip olur.

Kurulum öncesi: hangi yöntem doğru?

Docker'ın resmî dokümantasyonu birkaç kurulum yöntemi sunar: apt deposu üzerinden (önerilen, güncelleme takibi kolay), bir kurulum betiği ile (hızlı ama denetimi az) veya paketi manuel indirip kurarak (offline ortamlar için). Bu rehber, güncelleme ve güvenlik yaması takibini en kolay hale getiren apt deposu yöntemini izliyor. Dağıtımın kendi paket deposundaki eski 'docker.io' paketi kurulmamalı — bu paket genellikle Docker'ın kendi resmî sürümlerinin gerisinde kalır.

Adım 1: Docker'ın resmî apt deposunu eklemek

Önce gerekli bağımlılıkları kurup Docker'ın GPG anahtarını sisteme ekleyin:

Docker apt deposu kurulum komutlarını gösteren terminal ekranı
Docker'ın resmî GPG anahtarını ve apt anahtarlık dizinini hazırlayan komutlar.

Ardından apt deposunu sisteminize tanıtın ve paket listesini güncelleyin:

  1. sudo apt update && sudo apt install ca-certificates curl
  2. sudo install -m 0755 -d /etc/apt/keyrings
  3. sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
  4. sudo chmod a+r /etc/apt/keyrings/docker.asc
  5. Repository tanım dosyasını /etc/apt/sources.list.d/docker.sources olarak oluşturun (Docker'ın resmî dokümantasyonundaki tam içerikle)
  6. sudo apt update

Adım 2: Docker paketlerini kurmak

Depo eklendikten sonra güncel Docker Engine, CLI, containerd çalışma zamanı, Buildx ve Compose eklentilerini tek komutla kurabilirsiniz:

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

Bu komut yalnızca çekirdek Docker Engine'i değil, `docker compose` ve `docker buildx` alt komutlarını da kurar — ayrı ayrı kurmanıza gerek kalmaz.

Adım 3: Kurulumu doğrulamak

Kurulumu doğrulamak için Docker'ın resmî 'hello-world' test imajını çalıştırmak standart pratiktir. Bu komut, Docker Engine'in imaj çekme, konteyner oluşturma ve çalıştırma zincirinin uçtan uca çalıştığını doğrular:

docker run hello-world komutunun terminal çıktısı
sudo docker run hello-world komutunun beklenen çıktısı — imaj bulunamadığında Docker Hub'dan otomatik çekilir.

Docker'ın kendi dokümantasyonu şu noktayı açıkça belirtir: kurulum sonrasında 'docker' kullanıcı grubu var olur ama içinde hiçbir kullanıcı yoktur — bu yüzden komutları sudo olmadan çalıştırmak için ek bir adım (post-installation) gerekir.

İlk konteyneri incelemek: temel komutlar

KomutNe yapar
docker psÇalışan konteynerleri listeler
docker ps -aDurmuş konteynerler dahil tümünü listeler
docker imagesİndirilmiş imajları listeler
docker logs <konteyner>Bir konteynerin log çıktısını gösterir
docker stop <konteyner>Çalışan bir konteyneri durdurur
docker rm <konteyner>Durmuş bir konteyneri siler
Docker Engine kurulumunu doğruladıktan sonra en sık kullanılan temel komutlar

docker grubuna ekleme gerçekten güvenli mi?

Kullanıcıyı docker grubuna eklemek (`sudo usermod -aG docker $USER`), her komut için sudo yazma zorunluluğunu kaldırır — ama bunun bir güvenlik tradeoff'u olduğunu bilmek gerekir. Docker grubundaki bir kullanıcı, kök (root) dosya sistemini bir konteyner içinden bağlayarak (mount) fiilen root yetkisine ulaşabilir. Tek kullanıcılı bir geliştirme makinesinde bu risk genellikle kabul edilebilirken, birden fazla kullanıcının erişebildiği paylaşımlı bir sunucuda docker grubu üyeliği dikkatli verilmelidir. Grup değişikliğinin etkili olması için kullanıcının oturumu kapatıp tekrar açması gerekir.

Rootless mod bir alternatif mi?

Docker'ın resmî dokümantasyonu, root olmayan bir kullanıcı olarak Docker daemon'ını çalıştırmayı sağlayan 'rootless mode' seçeneğini de sunar. Bu, docker grubu üyeliğinin getirdiği root-eşdeğeri riski ortadan kaldırır, ancak bazı ağ/depolama özelliklerinde sınırlamalar getirir — production ortamında hangi modun kullanılacağı, güvenlik gereksinimleri ile işlevsellik ihtiyacı karşılaştırılarak seçilmelidir.

Kurulum sonrası kontrol listesi

  • Docker servisinin sunucu yeniden başlatıldığında otomatik başlayacak şekilde ayarlanması: sudo systemctl enable docker
  • Docker grubuna eklenen kullanıcıların oturum kapatıp açması (grup değişikliğinin etkili olması için)
  • docker version ve docker info komutlarıyla sürüm ve yapılandırma bilgisinin doğrulanması
  • docker compose version ile Compose eklentisinin kurulu olduğunun doğrulanması

Yaygın hatalar

  • Dağıtımın kendi deposundaki eski/uyumsuz 'docker.io' paketini kurmak
  • docker komutlarını sürekli sudo ile çalıştırmak yerine kullanıcıyı docker grubuna eklemeyi atlamak (bu aslında bir güvenlik tercihi de olabilir — kararı bilinçli vermek önemli)
  • GPG anahtarını eklemeden veya yanlış izinlerle (chmod a+r atlanarak) depoyu eklemeye çalışmak
  • Kurulumdan sonra güvenlik güncellemelerini takip etmemek

Sonuç

Docker kurulumunun teknik adımları basittir ve resmi apt deposu yöntemi güncelleme takibini kolaylaştırır. Asıl önemli olan, dağıtımın eski paketini değil resmî depodan gelen güncel sürümü kurmak ve kurulum sonrası doğrulama/güvenlik adımlarını atlamamaktır. Sonraki adım genellikle Docker Compose ile çok servisli bir uygulamayı ayağa kaldırmaktır.

Kategoriler

Etiketler

Kaynaklar

  1. Docker Docs — Install Docker Engine on Ubuntu
  2. Docker Docs — Run the Docker daemon as a non-root user (Rootless mode)

Paylaş