Skip to content
Back to blog
Rehber Ubuntu Server Docker Konteyner Sistem Yönetimi Linux Kurulum Rehberi Sanalization Mistral

Ubuntu Server Üzerinde Docker Kurulumu ve Temel Konteyner Yönetimi: Adım Adım Rehber

Ubuntu Server üzerinde Docker kurulumunun yanı sıra konteyner yönetimi, ağ yapılandırması ve temel optimizasyon tekniklerini adım adım öğrenin. Bu rehber, sistem yöneticileri ve geliştiriciler için pratik bir başlangıç noktası sunmaktadır.

Caner Serbest

Sistem ve Altyapı

7 min read

Ubuntu Server Üzerinde Docker Kurulumu ve Temel Konteyner Yönetimi: Adım Adım Rehber

Docker, uygulamaların hızlı ve güvenilir bir şekilde dağıtılmasını sağlayan bir açık kaynaklı konteyner platformudur. Ubuntu Server üzerinde Docker kurulumu ve temel konteyner yönetimi, sistem yöneticileri ve geliştiriciler için vazgeçilmez bir beceridir. Bu rehberde, Ubuntu Server üzerinde Docker kurulumundan başlayarak, konteynerlerin nasıl yönetileceği, ağ yapılandırmasının nasıl yapılacağı ve temel optimizasyon tekniklerine kadar tüm adımları detaylı bir şekilde ele alacağız.


Docker Nedir ve Neden Kullanılır?

Docker, uygulamaları ve bağımlılıklarını izole bir ortamda çalıştırmak için kullanılan bir konteyner platformudur. Geleneksel sanal makinelerin aksine, Docker konteynerleri işletim sistemi çekirdeğini paylaşır ve bu sayede daha hafif, daha hızlı ve daha verimli çalışır.

Docker’ın Avantajları:

  • Hafiflik: Konteynerler, sanal makinelere göre çok daha az kaynak tüketir.
  • Hız: Konteynerler saniyeler içinde başlatılabilir ve durdurulabilir.
  • Taşınabilirlik: Docker konteynerleri, herhangi bir Docker destekleyen sistemde çalıştırılabilir.
  • İzolasyon: Her konteyner kendi bağımsız ortamında çalışır, bu da güvenliği artırır.
  • Kolay Dağıtım: Uygulamalarınızı Docker konteynerleri olarak paketleyerek kolayca dağıtabilirsiniz.

Ubuntu Server Üzerinde Docker Kurulumu

Ubuntu Server üzerinde Docker kurulumu oldukça basittir. Aşağıdaki adımları takip ederek Docker’ı sisteminize kurabilirsiniz.

1. Sistem Güncellemeleri

Docker kurulumuna başlamadan önce, sisteminizin güncel olduğundan emin olun. Aşağıdaki komutları kullanarak sisteminizi güncelleyebilirsiniz:

sudo apt update && sudo apt upgrade -y

2. Docker Kurulumu

Ubuntu Server üzerinde Docker kurulumu için resmi Docker deposunu kullanmanız önerilir. Aşağıdaki adımları takip edin:

Docker Deposunu Ekleme

# Gerekli bağımlılıkları yükleyin
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# Docker'ın resmi GPG anahtarını ekleyin
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

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

Docker’ı Kurun

# Depoyu güncelleyin
sudo apt update

# Docker'ı ve ilgili araçları yükleyin
sudo apt install -y docker-ce docker-ce-cli containerd.io

3. Docker Hizmetini Başlatma ve Etkinleştirme

Docker’ı kurduktan sonra, hizmeti başlatmanız ve sistem başlangıcında otomatik olarak başlatılmasını sağlamanız gerekmektedir:

# Docker hizmetini başlatın
sudo systemctl start docker

# Docker hizmetini sistem başlangıcında otomatik olarak başlatılmasını sağlayın
sudo systemctl enable docker

4. Docker’ın Çalıştığını Doğrulama

Docker’ın doğru bir şekilde kurulduğunu doğrulamak için aşağıdaki komutu çalıştırın:

sudo docker run hello-world

Bu komut, Docker’ın çalıştığını doğrulamak için bir test konteyneri çalıştırır. Eğer her şey doğru şekilde yapıldıysa, aşağıdaki çıktıyı almalısınız:

Hello from Docker!
This message shows that your installation appears to be working correctly.

Docker Kullanıcı Yetkilerini Yönetme

Varsayılan olarak, Docker komutlarını çalıştırmak için sudo yetkisine sahip olmanız gerekmektedir. Bu durum, Docker komutlarını kullanırken sürekli olarak sudo yazmanızı gerektirir. Bu sorunu çözmek için, kullanıcınızı docker grubuna ekleyebilirsiniz:

# Kullanıcınızı docker grubuna ekleyin
sudo usermod -aG docker $USER

Değişikliklerin etkili olması için oturumunuzu kapatıp yeniden giriş yapmanız gerekmektedir. Yeniden giriş yaptıktan sonra, docker komutlarını sudo kullanmadan çalıştırabilmelisiniz.


Temel Docker Komutları

Docker’ı kurduktan ve kullanıcı yetkilerini ayarladıktan sonra, temel Docker komutlarını öğrenmek önemlidir. Aşağıda, en sık kullanılan Docker komutlarını bulabilirsiniz:

Konteyner Yönetimi

KomutAçıklama
docker psÇalışan konteynerleri listeleyin
docker ps -aTüm konteynerleri (çalışan ve durdurulmuş) listeleyin
docker stop <container_id>Bir konteyneri durdurun
docker start <container_id>Bir konteyneri başlatın
docker restart <container_id>Bir konteyneri yeniden başlatın
docker rm <container_id>Bir konteyneri silin
docker logs <container_id>Bir konteynerin loglarını görüntüleyin

Resim Yönetimi

KomutAçıklama
docker imagesYerel olarak bulunan Docker resimlerini listeleyin
docker pull <image_name>Bir Docker resmini indirin
docker rmi <image_id>Bir Docker resmini silin

Ağ Yönetimi

KomutAçıklama
docker network lsMevcut Docker ağlarını listeleyin
docker network inspect <network_name>Bir Docker ağının ayrıntılarını görüntüleyin

Docker Konteynerleri ile Çalışma

Docker konteynerleri ile çalışmaya başlamak için, öncelikle bir Docker resmine ihtiyacınız olacaktır. Docker Hub, popüler Docker resimlerini barındıran bir platformdur. Örneğin, bir Nginx web sunucusu konteyneri çalıştırmak için aşağıdaki komutu kullanabilirsiniz:

# Nginx resmini indirin
sudo docker pull nginx

# Nginx konteynerini çalıştırın
sudo docker run -d --name my-nginx -p 8080:80 nginx

Bu komutlar, Docker Hub’dan Nginx resmini indirir ve ardından bir konteyner olarak çalıştırır. -d parametresi konteynerin arka planda çalışmasını sağlar, --name parametresi konteynere bir isim verir ve -p parametresi konteynerin portunu ana sistemin portuna bağlar.

Konteynerlerin Durumunu Kontrol Etme

Çalışan konteynerlerin durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:

sudo docker ps

Bu komut, çalışan konteynerlerin listesini görüntüler. Eğer durdurulmuş konteynerleri de görmek istiyorsanız, -a parametresini ekleyin:

sudo docker ps -a

Konteynerlerin Loglarını Görüntüleme

Bir konteynerin loglarını görüntülemek için aşağıdaki komutu kullanabilirsiniz:

sudo docker logs my-nginx

Bu komut, my-nginx konteynerinin loglarını görüntüler.

Konteynerleri Durdurma ve Silme

Bir konteyneri durdurmak için aşağıdaki komutu kullanabilirsiniz:

sudo docker stop my-nginx

Durdurulan bir konteyneri silmek için aşağıdaki komutu kullanabilirsiniz:

sudo docker rm my-nginx

Docker Ağ Yapılandırması

Docker, varsayılan olarak üç farklı ağ modunda konteynerler oluşturur:

  1. bridge: Varsayılan ağ modu. Konteynerler birbirleriyle iletişim kurabilir ve ana sistemin ağına bağlanabilir.
  2. host: Konteyner, ana sistemin ağını doğrudan kullanır. Bu mod, performansı artırır ancak güvenlik riski oluşturabilir.
  3. none: Konteyner hiçbir ağa bağlanmaz.

Özel Docker Ağları Oluşturma

Özel bir Docker ağı oluşturmak için aşağıdaki komutu kullanabilirsiniz:

sudo docker network create my-network

Bu komut, my-network adlı yeni bir Docker ağı oluşturur. Oluşturulan bu ağa konteynerleri bağlamak için aşağıdaki komutu kullanabilirsiniz:

sudo docker run -d --name my-app --network my-network nginx

Bu komut, my-app adlı bir Nginx konteynerini oluşturur ve my-network adlı özel ağa bağlar.

Ağları Listeleme ve İnceleme

Mevcut Docker ağlarını listelemek için aşağıdaki komutu kullanabilirsiniz:

sudo docker network ls

Bir ağın ayrıntılarını görüntülemek için aşağıdaki komutu kullanabilirsiniz:

sudo docker network inspect my-network

Docker Volumes ile Veri Yönetimi

Docker konteynerleri, varsayılan olarak geçici veriler üretir. Konteyner durdurulduğunda veya silindiğinde, bu veriler kaybolur. Kalıcı veriler üretmek için Docker volumes kullanabilirsiniz.

Bir Volume Oluşturma

sudo docker volume create my-volume

Bir Konteynere Volume Bağlama

sudo docker run -d --name my-app -v my-volume:/app/data nginx

Bu komut, my-volume adlı bir volume oluşturur ve my-app konteynerine /app/data dizinine bağlar. Konteyner durdurulduğunda bile veriler kalıcı olarak saklanır.

Mevcut Volumes’ı Listeleme

Mevcut Docker volumes’larını listelemek için aşağıdaki komutu kullanabilirsiniz:

sudo docker volume ls

Bir volume’un ayrıntılarını görüntülemek için aşağıdaki komutu kullanabilirsiniz:

sudo docker volume inspect my-volume

Docker Compose ile Uygulama Yönetimi

Docker Compose, çoklu konteyner uygulamalarını yönetmek için kullanılan bir araçtır. Docker Compose ile birden fazla konteyneri tek bir dosya üzerinden yönetebilirsiniz.

Docker Compose Kurulumu

Docker Compose, Docker ile birlikte kurulur. Docker Compose’un kurulu olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın:

sudo docker-compose --version

Eğer Docker Compose kurulu değilse, aşağıdaki komutları kullanarak kurabilirsiniz:

# Docker Compose'u indirin
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# Docker Compose'a çalıştırma izni verin
sudo chmod +x /usr/local/bin/docker-compose

Docker Compose Dosyası Oluşturma

Bir Docker Compose dosyası oluşturmak için aşağıdaki adımları takip edin. Örneğin, bir Nginx ve bir Redis konteynerinden oluşan bir uygulama için docker-compose.yml adlı bir dosya oluşturun:

version: '3.8'

services:
  web:
    image: nginx
    ports:
      - "8080:80"
    volumes:
      - web-data:/usr/share/nginx/html

  redis:
    image: redis
    volumes:
      - redis-data:/data

volumes:
  web-data:
  redis-data:

Docker Compose ile Uygulamayı Başlatma

Docker Compose dosyasını oluşturduktan sonra, uygulamayı başlatmak için aşağıdaki komutu çalıştırın:

sudo docker-compose up -d

Bu komut, Docker Compose dosyasındaki tanımlara göre konteynerleri oluşturur ve başlatır. -d parametresi konteynerlerin arka planda çalışmasını sağlar.

Docker Compose ile Uygulamayı Durdurma

Uygulamayı durdurmak için aşağıdaki komutu çalıştırın:

sudo docker-compose down

Bu komut, çalışan konteynerleri durdurur ve ağları temizler.


Docker Güvenliği ve En İyi Uygulamalar

Docker kullanırken güvenlik en önemli önceliklerden biridir. Aşağıda, Docker kullanırken dikkat edilmesi gereken bazı güvenlik önlemleri ve en iyi uygulamalar bulunmaktadır:

1. Resimlerin Güvenilir Kaynaklardan İndirilmesi

Docker Hub gibi platformlardan resim indirirken, resmin güvenilir bir kaynaktan geldiğinden emin olun. Resimlerin imzalanmış olup olmadığını kontrol edin.

2. Minimum Yetki İlkesi

Konteynerler içinde çalışan uygulamaların minimum yetkiyle çalışmasını sağlayın. Gereksiz yetkiler vermeyin.

3. Güncellemelerin Düzenli Olarak Yapılması

Docker ve Docker resimlerini düzenli olarak güncelleyin. Güvenlik açıklarını kapatmak için bu önemlidir.

4. Ağ İzolasyonu

Konteynerler arasında ağ izolasyonu sağlayın. Gereksiz ağ erişimini engelleyin.

5. Veri Yedekleme

Önemli verilerinizi düzenli olarak yedekleyin. Docker volumes kullanıyorsanız, volumes’larınızı yedeklemeyi unutmayın.

6. Logların İzlenmesi

Docker konteynerlerinin loglarını düzenli olarak izleyin. Anormal davranışları tespit etmek için logları kullanın.

7. Docker Daemon’un Güvenliği

Docker daemon’unun güvenliğini sağlamak için aşağıdaki adımları takip edin:

  • Docker daemon’unu sadece gerekli durumlarda çalıştırın.
  • Docker daemon’unun dinlediği portunu koruyun.
  • Docker daemon’unun yapılandırmasını güvenli bir şekilde yapın.

Sonuç

Bu rehberde, Ubuntu Server üzerinde Docker kurulumunu, temel Docker komutlarını, konteyner yönetimini, ağ yapılandırmasını, veri yönetimini ve Docker Compose kullanımını detaylı bir şekilde ele aldık. Docker, modern uygulama dağıtımında ve sistem yönetiminde vazgeçilmez bir araçtır. Bu rehberi takip ederek, Docker’ı etkili bir şekilde kullanmaya başlayabilir ve uygulamalarınızı daha verimli bir şekilde yönetebilirsiniz.

Docker hakkında daha fazla bilgi edinmek ve gelişmiş özelliklerini keşfetmek için Docker’ın resmi dokümantasyonunu inceleyebilirsiniz. İyi çalışmalar!


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