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
| Komut | Açıklama |
|---|---|
docker ps | Çalışan konteynerleri listeleyin |
docker ps -a | Tü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
| Komut | Açıklama |
|---|---|
docker images | Yerel olarak bulunan Docker resimlerini listeleyin |
docker pull <image_name> | Bir Docker resmini indirin |
docker rmi <image_id> | Bir Docker resmini silin |
Ağ Yönetimi
| Komut | Açıklama |
|---|---|
docker network ls | Mevcut 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:
- bridge: Varsayılan ağ modu. Konteynerler birbirleriyle iletişim kurabilir ve ana sistemin ağına bağlanabilir.
- host: Konteyner, ana sistemin ağını doğrudan kullanır. Bu mod, performansı artırır ancak güvenlik riski oluşturabilir.
- 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.