Docker Nasıl Kurulur? Ubuntu ve AlmaLinux Üzerinde Tam Rehber
Docker Engine ve Docker Compose kurulum rehberi: Ubuntu 22.04 ve AlmaLinux 9 üzerinde resmi repo ile kurulum, temel komutlar.
Docker Nedir?
Docker, uygulamaları konteynerler içinde paketleyip çalıştırmayı sağlayan açık kaynaklı bir platformdur. 2013 yılında Solomon Hykes tarafından başlatılan Docker projesi, yazılım geliştirme ve dağıtım süreçlerini köklü biçimde değiştirmiştir. Konteyner teknolojisi, sanal makinelerden farklı olarak işletim sistemi çekirdeğini ana makineyle paylaşır; bu sayede çok daha hafif, hızlı başlayan ve taşınabilir bir izolasyon ortamı sunar.
Docker konteynerleri sayesinde "benim makinemde çalışıyor" problemi ortadan kalkar. Geliştirme, test ve üretim ortamları aynı konteyner imajını kullandığından, ortamlar arası farklılıktan kaynaklanan hatalar büyük ölçüde önlenir. Bir Docker imajı, uygulamanın tüm bağımlılıklarını (runtime, kütüphaneler, konfigürasyon dosyaları) içinde barındırır ve herhangi bir Docker destekli ortamda tutarlı biçimde çalışır.
Docker ekosistemi; Docker Engine (çalışma zamanı), Docker Compose (çoklu konteyner tanımı), Docker Hub (imaj deposu) ve Docker Swarm (orkestrasyon) bileşenlerinden oluşur. Kubernetes ile birlikte kullanıldığında kurumsal ölçekli konteyner orkestrasyonu sağlar.
Temel Özellikler
- Konteyner İzolasyonu: Her konteyner kendi dosya sistemi, ağ ve süreç alanına sahiptir.
- Katmanlı İmaj Sistemi: Union file system ile imaj katmanları önbellekte saklanır, değişiklikler üst katmana yazılır.
- Docker Hub: Milyonlarca hazır imajın bulunduğu genel kayıt (registry).
- Docker Compose: Çoklu konteyner uygulamalarını YAML dosyasıyla tanımlama ve yönetme.
- Volume Sistemi: Konteyner dışında kalıcı veri depolama.
- Ağ Yönetimi: Bridge, host, overlay ağ modları ile konteynerler arası iletişim.
- Taşınabilirlik: Geliştirme ortamından üretim ortamına aynı imajla geçiş.
Sistem Gereksinimleri
Desteklenen İşletim Sistemleri
- Ubuntu 20.04, 22.04, 24.04 LTS
- Debian 11, 12
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- RHEL 8, 9
Minimum Donanım Gereksinimleri
- CPU: 64-bit mimarisi zorunlu
- RAM: 1 GB (üretim için 2 GB+)
- Disk: 20 GB boş alan önerilir
İşletim Sistemine Göre Kurulum
🟠 Ubuntu 22.04 Üzerinde Docker Kurulumu
1. Sistemi Güncelleyin ve Bağımlılıkları Kurun
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release
2. Docker'ın Resmi GPG Anahtarını Ekleyin
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
3. Docker Deposunu Ekleyin
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
4. Docker Engine'i Kurun
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
5. Docker Servisini Başlatın
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
6. Kurulumu Doğrulayın
sudo docker run hello-world
docker --version
docker compose version
🔵 AlmaLinux 9 Üzerinde Docker Kurulumu
1. Sistemi Güncelleyin
sudo dnf update -y
2. Eski Docker Sürümlerini Kaldırın (varsa)
sudo dnf remove docker docker-client docker-client-latest docker-common \
docker-latest docker-latest-logrotate docker-logrotate docker-engine -y
3. Docker Resmi Deposunu Ekleyin
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4. Docker Engine'i Kurun
sudo dnf install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
5. Servisi Başlatın ve Aktifleştirin
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world
Non-Root Kullanıcıya Docker Yetkisi Verme
Her Docker komutuna sudo yazmamak için, kullanıcınızı docker grubuna ekleyin:
sudo usermod -aG docker $USER
newgrp docker
docker ps # sudo olmadan test edin
Dikkat: Docker grubuna eklenen kullanıcılar root ile eşdeğer ayrıcalıklara sahip olur. Güvenilen kullanıcılara uygulanmalıdır.
Temel Docker Komutları
# Konteyner işlemleri
docker run -d -p 8080:80 --name web nginx # Arka planda nginx başlat
docker ps # Çalışan konteynerleri listele
docker ps -a # Tüm konteynerleri listele
docker stop web # Konteyneri durdur
docker start web # Konteyneri başlat
docker rm web # Konteyneri sil
docker logs web # Konteyner loglarını gör
docker exec -it web bash # Konteynere bağlan
# İmaj işlemleri
docker images # İmajları listele
docker pull ubuntu:22.04 # İmaj indir
docker rmi ubuntu:22.04 # İmajı sil
docker build -t myapp:1.0 . # Dockerfile'dan imaj oluştur
# Temizlik
docker system prune -af # Kullanılmayan her şeyi sil
Docker Compose ile Çoklu Konteyner Örneği
docker-compose.yml dosyası:
version: "3.9"
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: myapp
MYSQL_USER: myuser
MYSQL_PASSWORD: mypass
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
docker compose up -d # Tüm servisleri başlat
docker compose ps # Servislerin durumunu kontrol et
docker compose down # Tüm servisleri durdur ve kaldır
Sık Karşılaşılan Sorunlar
- Permission denied (docker.sock): Kullanıcıyı docker grubuna ekleyin ve oturumu yeniden açın.
- Port zaten kullanımda:
ss -tlnp | grep :PORTile çakışan süreci bulun. - Disk alanı doldu:
docker system prune -afile kullanılmayan konteyner ve imajları temizleyin. - SELinux engeli (AlmaLinux):
sudo setsebool -P container_manage_cgroup 1komutunu çalıştırın.
İlgili Makaleler
Yorumlar
Henüz yorum yok. İlk yorumu siz yapın!