Skip to content
Bloga dön
Rehber Ubuntu Server Docker DevOps Linux Konteyner Yönetimi Sistem Yöneticiliği

Ubuntu Server Üzerinde Docker Kurulumu ve Temel Konteyner Yönetimi

Ubuntu Server ortamında Docker altyapısının sıfırdan kurulumu, güvenli yapılandırılması ve günlük sistem yönetiminde kullanılan temel komutların pratik rehberi.

Caner Serbest

Sistem ve Altyapı

4 dk okuma

Ubuntu Server Üzerinde Docker Kurulumu ve Temel Konteyner Yönetimi

Modern sistem yönetiminde uygulamaları izole, taşınabilir ve hızlı bir şekilde ayağa kaldırmak artık bir standart haline geldi. Geleneksel sanallaştırma yöntemlerinin getirdiği kaynak maliyetini ortadan kaldıran Docker, Linux altyapılarında en çok tercih edilen konteynerizasyon teknolojisidir.

Bu rehberde, taze kurulmuş bir Ubuntu Server üzerinde Docker altyapısının resmi ve en güvenli yöntemlerle nasıl kurulacağını, servis yönetimini ve günlük operasyonlarda sıkça ihtiyaç duyacağınız temel komutları saha deneyimleri ışığında ele alacağız.


1. Ön Hazırlık ve Sistem Güncellemesi

Herhangi bir paket kurulumuna başlamadan önce sunucumuzun paket listesini güncellemek ve mevcut yazılımları en son kararlı sürümlerine getirmek önemlidir. Bu adım, ileride yaşanabilecek bağımlılık (dependency) sorunlarının önüne geçer.

sudo apt update && sudo apt upgrade -y

Güncelleme tamamlandıktan sonra, HTTPS üzerinden paket indirmemize ve depoları güvenle eklememize olanak tanıyan temel araçları kuralım:

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y

2. Docker Resmi Deposunu Ekleme

Ubuntu’nun kendi standart depolarında Docker’ın eski sürümleri bulunabilir. En güncel ve güvenlik yamaları alınmış sürümü kurmak için her zaman Docker’ın resmi deposunu sisteme tanımlamak en doğrusudur.

Öncelikle Docker’ın resmi GPG anahtarını sistemimize güvenli bir şekilde indirelim:

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

Ardından, mimari ve sürüm bilgisine uygun olarak Docker deposunu sources.list.d altına kaydedelim:

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

Depoyu ekledikten sonra paket listesini tekrar güncelleyelim ki yeni eklenen Docker deposu sistem tarafından tanınsın:

sudo apt update

3. Docker Engine Kurulumu

Artık Docker motorunu ve gerekli bileşenleri kurmaya hazırız. Bu adımda Docker Engine, CLI aracı, konteynerler için gerekli olan containerd ve Docker Compose eklentisini toplu olarak kuracağız.

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

Kurulum bittikten sonra servis durumunu kontrol ederek Docker daemon’ın arka planda sorunsuz çalışıp çalışmadığını doğrulayalım:

sudo systemctl status docker

Çıktının içerisinde active (running) ibaresini görmeniz gerekir. Ayrıca sistem yeniden başladığında Docker servisinin otomatik olarak başlaması için şu komutu teyit amaçlı çalıştırabilirsiniz:

sudo systemctl enable docker

4. Yetkilendirme: Docker Komutlarını sudo Olmadan Çalıştırmak

Varsayılan olarak Docker komutlarını çalıştırmak için sudo yetkisi gerekir. Her seferinde sudo yazmak hem zaman kaybıdır hem de otomasyon scriptlerinde sorun yaratabilir. Mevcut kullanıcınızı docker grubuna ekleyerek bu kısıtlamayı kaldırabilirsiniz.

Kullanıcınızı docker grubuna dahil edin:

sudo usermod -aG docker $USER

Not: Bu değişikliğin aktif olması için oturumunuzu kapatıp tekrar açmanız ya da aşağıdaki komutu çalıştırmanız gerekir:

newgrp docker

Yetkinin doğru tanımlandığını test etmek için sudo kullanmadan şu komutu çalıştırabilirsiniz:

docker run hello-world

Bu komut, DockerHub üzerinden küçük bir test imajı indirecek, çalıştıracak ve başarılı kurulum mesajını ekrana basacaktır.

5. Günlük Operasyonlar İçin Temel Docker Komutları

Sistem yöneticisi olarak Docker ile çalışırken en sık kullanacağınız komutları bilmek operasyonel hızı artırır. İşte günlük hayatınızı kolaylaştıracak temel komut seti:

İmaj (Image) Yönetimi

  • İmaj İndirmek:
    docker pull nginx:latest
  • Mevcut İmajları Listelemek:
    docker images
  • Kullanılmayan İmajları Temizlemek:
    docker image prune

Konteyner (Container) Yönetimi

  • Arka Planda Konteyner Başlatmak:

    docker run -d --name web-server -p 80:80 nginx:latest

    (Bu komut Nginx imajını indirir, web-server adını verir, sunucunun 80 portunu konteynerin 80 portuna bağlar ve arka planda çalıştırır.)

  • Çalışan Konteynerleri Listelemek:

    docker ps
  • Tüm Konteynerleri Listelemek (Durmuş olanlar dahil):

    docker ps -a
  • Konteyneri Durdurmak:

    docker stop web-server
  • Konteyneri Yeniden Başlatmak:

    docker restart web-server
  • Konteyneri Silmek:

    docker rm web-server

Hata Ayıklama ve Log İzleme

  • Konteyner Loglarını Canlı İzlemek:
    docker logs -f web-server
  • Çalışan Konteyner İçine Terminal ile Bağlanmak:
    docker exec -it web-server /bin/bash

6. Üretim Ortamı (Production) İçin Kritik En İyi Uygulamalar

Ubuntu Server üzerinde Docker çalıştırırken güvenliği ve performansı artırmak için dikkat edilmesi gereken bazı temel kurallar vardır:

  1. Disk Alanı Yönetimi (Prune): Konteynerler, loglar ve kullanılmayan imajlar zamanla diskte ciddi yer kaplar. Crontab kullanarak belirli periyotlarla docker system prune -f komutunu otomatikleştirebilirsiniz.
  2. Log Rotasyonu: Docker logları varsayılan olarak sınırsız büyüyebilir. /etc/docker/daemon.json dosyası üzerinden log boyutuna limit koymak disk doluluğu hatalarını önler:
    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m",
        "max-file": "3"
      }
    }
  3. Güncellemeler: Host işletim sistemi (Ubuntu) güncellemelerini düzenli yaptığınız gibi, konteyner imajlarınızın da güvenlik yamalarını takip etmelisiniz.

Sonuç

Bu rehber ile Ubuntu Server üzerinde Docker altyapısını sıfırdan kurdu, güvenli hale getirdi ve günlük operasyonlarda kullanacağınız temel komutları incelediniz. Konteyner teknolojisi, doğru yapılandırıldığında sistem yönetimini zahmetsiz hale getiren güçlü bir araçtır. Altyapınızı kurduktan sonra projelerinizi Docker Compose ile yönetmeye başlayarak mimarinizi daha sürdürülebilir kılabilirsiniz.


Bu yazı Gemini ile otomatik oluşturulmuştur.