CentOS’a Docker Kurulumu: Tam Adım Adım Kılavuz
Docker, geliştiricilerin uygulamaları nasıl oluşturduğunu, gönderdiğini ve çalıştırdığını temelden değiştirmiştir. Yazılımı hafif, taşınabilir konteynerler halinde paketleyerek, Docker klasik “benim makinemde çalışıyor” sorununu ortadan kaldırır ve hem geliştirme iş akışlarını hem de üretim dağıtımlarını önemli ölçüde basitleştirir. CentOS çalıştırıyorsanız ve konteynerizasyonun gücünden yararlanmak istiyorsanız, bu kapsamlı rehber sizi her adımda yönlendirir — taze bir sistem güncellemesinden ileri konfigürasyona kadar.
İster tek bir web uygulaması dağıtıyor olun ister karmaşık çok konteynerli ortamları yönetiyor olun, Docker’ı CentOS’a doğru şekilde yüklemek kritik ilk adımdır.
Ön Koşullar
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
- CentOS 7 veya CentOS 8 sunucusu (fiziksel veya sanal)
sudoayrıcalıklarına sahip bir kullanıcı hesabı- Kararlı bir internet bağlantısı
- Linux komut satırı hakkında temel bilgi
> Pro İpucu: En iyi Docker deneyimi için, bunu bir VPS Hosting planında çalıştırmayı düşünün. Sanal özel sunucu, tam root erişimi, özel kaynaklar ve paylaşılan ortamların kısıtlamaları olmadan konteynerler çalıştırma esnekliği sağlar.
Adım 1: Sistemi Güncelleyin
Yeni yazılım yüklemeden önce, uyumluluk ve güvenlik sağlamak için mevcut paketlerinizi her zaman güncelleyin. Aşağıdaki komutu çalıştırın:
sudo yum update -yBu komut, tüm yüklü paketleri en son sürümlerine yeniler. Beklemede kaç güncelleme olduğuna bağlı olarak birkaç dakika sürebilir. Tamamen güncellenmiş bir sistem, Docker kurulumu sırasında bağımlılık çatışmalarının riskini azaltır.
Adım 2: Gerekli Bağımlılıkları Yükleyin
Docker, düzgün çalışması için birkaç sistem düzeyinde pakete bağlıdır. Bunları tek bir komutla yükleyin:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2Her paketin yaptığı şey:
| Paket | Amaç |
|---|---|
yum-utils | Depoları yönetmek için yum-config-manager yardımcı programını sağlar |
device-mapper-persistent-data | Docker’ın device mapper depolama sürücüsü için gereklidir |
lvm2 | Docker’ın depolama arka ucu için Mantıksal Birim Yöneticisi desteği |
Bu bağımlılıklar, Docker’ın CentOS sisteminizde konteyner depolamasını verimli ve güvenilir bir şekilde yönetebilmesini sağlar.
Adım 3: Resmi Docker Deposunu Ekleyin
CentOS’un varsayılan paket depoları en son Docker paketlerini içermez. En güncel, kararlı sürümü almak için Docker’ın resmi deposunu eklemeniz gerekir:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoBu komut, Docker’ın resmi CentOS deposunu sisteminizin depo listesine ekler. Resmi kaynağı kullanmak, Docker Inc.’den doğrudan orijinal, güncel Docker paketleri almanızı garanti eder; bu, üçüncü taraf aynalardan potansiyel olarak eski sürümler almaktan daha iyidir.
Deponun başarıyla eklendiğini, yapılandırılmış depolarınızı listeleyerek doğrulayabilirsiniz:
sudo yum repolistAdım 4: Docker Engine’i Yükleyin
Depo yerinde olduğunda, Docker’ı yüklemek basittir:
sudo yum install -y docker-ce docker-ce-cli containerd.io> Not: Tam, üretime hazır bir kurulum için ana engine’in yanında docker-ce-cli (Docker komut satırı arayüzü) ve containerd.io (konteyner çalışma zamanı) yüklemeniz de önerilir.
Bu, Docker Community Edition (CE)‘ı yükler — hem geliştirme hem de üretim iş yükleri için mükemmel olan Docker’ın ücretsiz, açık kaynaklı sürümü.
Adım 5: Docker Hizmetini Başlatın ve Etkinleştirin
Docker’ı yüklemek onu otomatik olarak başlatmaz. Docker daemon’unu başlatmanız ve sistem önyüklemesinde otomatik olarak başlaması için yapılandırmanız gerekir:
sudo systemctl start docker
sudo systemctl enable dockersystemctl start docker— Docker hizmetini hemen başlatırsystemctl enable docker— Docker’ı sunucu her yeniden başlatıldığında otomatik olarak başlayacak şekilde yapılandırır
Hizmet Durumunu Doğrulayın
Docker’ın doğru şekilde çalıştığını onaylayın:
sudo systemctl status dockerHizmetin active (running) olduğunu gösteren çıktı görmelisiniz. Durum herhangi bir hata gösteriyorsa, sorun giderme ayrıntıları için journalctl -u docker ile sistem günlüklerini gözden geçirin.
Adım 6: Docker Kurulumunu Doğrulayın
Docker’ın yerleşik testini çalıştırarak her şeyin beklendiği gibi çalıştığını doğrulayın:
sudo docker run hello-worldBu komut şunları yapar:
- Docker Hub kayıt defterine bağlanır
- Hafif
hello-worldtest görüntüsünü indirir - Bu görüntüden yeni bir konteyner oluşturur
- Konteyner çalıştırır ve bir onay mesajı yazdırır
Kurulumunuz başarılı olursa, şu şekilde başlayan bir çıktı göreceksiniz:
Hello from Docker!
This message shows that your installation appears to be working correctly.Tebrikler — Docker artık CentOS sunucunuzda tamamen kurulu ve çalışır durumda.
Adım 7: Docker’ı Kök Olmayan Kullanıcılar İçin Yapılandırın (İsteğe Bağlı ancak Önerilir)
Varsayılan olarak, Docker komutları sudo (kök ayrıcalıkları) gerektirir. Geliştirme ortamlarında güvenlik ve kolaylık için, belirli kök olmayan kullanıcıların Docker komutlarını çalıştırmasına izin verebilirsiniz ve onları docker grubuna ekleyebilirsiniz.
Docker Grubunu Oluşturun
Çoğu durumda, bu grup kurulum sırasında otomatik olarak oluşturulur. Değilse, manuel olarak oluşturun:
sudo groupadd dockerKullanıcınızı Docker Grubuna Ekleyin
your_username yerine gerçek Linux kullanıcı adını yazın:
sudo usermod -aG docker your_usernameDeğişiklikleri Uygulayın
Grup üyeliğinizi yenilemek için oturumu kapatıp yeniden açın. Alternatif olarak, değişikliği geçerli oturumda etkinleştirin:
newgrp dockerSudo Olmadan Test Edin
docker run hello-worldBu, sudo olmadan ve izin hatası olmadan çalışırsa, yapılandırma doğru şekilde çalışıyor demektir.
> Güvenlik Uyarısı: docker grubu, root kullanıcısına eşdeğer ayrıcalıklar verir. Üretim ortamlarında bu gruba yalnızca güvenilir kullanıcıları ekleyin.
Adım 8: Temel Docker Komutları Referansı
Docker çalışmaya başladığında, günlük olarak kullanacağınız en önemli komutlar şunlardır:
Konteyner Yönetimi
# List all running containers
docker ps
# List all containers (including stopped ones)
docker ps -a
# Start a stopped container
docker start container_id
# Stop a running container
docker stop container_id
# Remove a container
docker rm container_id
# Remove all stopped containers at once
docker container pruneİmaj Yönetimi
# List all locally stored images
docker images
# Pull an image from Docker Hub
docker pull image_name
# Pull a specific version/tag
docker pull image_name:tag
# Remove a local image
docker rmi image_name
# Remove all unused images
docker image prune -aKonteynerleri Çalıştırma
# Run a container interactively
docker run -it image_name /bin/bash
# Run a container in detached (background) mode
docker run -d image_name
# Run a container with port mapping
docker run -d -p 8080:80 image_name
# Run a container with a custom name
docker run -d --name my_container image_nameGünlükleri ve İstatistikleri Görüntüleme
# View container logs
docker logs container_id
# Follow live log output
docker logs -f container_id
# View real-time resource usage
docker statsAdım 9: Docker’ın Önyüklemede Başladığını Doğrulayın
Docker, systemctl enable docker çalıştırıldıktan sonra önyüklemede başlamak için zaten yapılandırılmış olmalıdır. Bu davranışı çift kontrol etmek veya yeniden etkinleştirmek için:
sudo systemctl enable dockerOtomatik başlatmayı devre dışı bırakmak için (örneğin, Docker’ın her zaman çalışmasına ihtiyaç duymadığınız bir geliştirme makinesinde):
sudo systemctl disable dockerAdım 10: Gelişmiş Yapılandırma (İsteğe Bağlı)
Docker Compose Yükleyin
Docker Compose, basit bir YAML yapılandırma dosyası kullanarak çok konteynerli uygulamaları tanımlamak ve yönetmek için gerekli bir araçtır. En son kararlı sürümü yükleyin:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composeYüklemeyi doğrulayın:
docker-compose --versionDocker Compose ile, tüm uygulama yığınlarını — web sunucuları, veritabanları, önbellekler — tek bir docker-compose.yml dosyasında tanımlayabilir ve hepsini bir komutla başlatabilirsiniz: docker-compose up -d.
Docker Daemon’u Yapılandırın
Daemon yapılandırma dosyasını düzenleyerek (veya oluşturarak) Docker’ın davranışını özelleştirebilirsiniz:
sudo nano /etc/docker/daemon.jsonYaygın bir yapılandırma örneği:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2",
"default-address-pools": [
{"base": "172.17.0.0/16", "size": 24}
]
}Daemon yapılandırmasını düzenledikten sonra, değişiklikleri uygulamak için Docker’ı yeniden başlatın:
sudo systemctl restart dockerYapılandırabileceğiniz yaygın daemon ayarları şunları içerir:
- Log sürücüsü ve döndürme — Konteyner günlüklerinin tüm disk alanını tüketmesini önleyin
- Depolama sürücüsü —
overlay2CentOS için önerilen sürücüdür - DNS ayarları — Konteynerler için özel DNS sunucuları ayarlayın
- Kayıt defteri aynalarını — Yerel aynalarla görüntü çekme hızını artırın
Güvenlik Duvarı Kurallarını Yapılandırın (CentOS 7)
firewalld çalıştırıyorsanız, Docker’ın ağ trafiğine izin vermeniz gerekebilir:
sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --reloadDocker için Doğru Hosting Ortamını Seçmek
Docker’ı üretimde çalıştırmak, güvenilir ve yüksek performanslı bir sunucu ortamı gerektirir. İşte kullanım durumunuza bağlı olarak en iyi seçenekler:
- VPS Hosting — Çoğu Docker dağıtımı için idealdir. Tam root erişimi, ölçeklenebilir kaynaklar ve uygun fiyatlı fiyatlandırma, VPS’yi konteynerleştirilmiş uygulamalar için tercih edilen seçim haline getirir.
- Dedicated Servers — Yüksek trafikli üretim ortamları veya aynı anda düzinelerce konteyner çalıştırmak için maksimum CPU, RAM ve depolama performansına ihtiyaç duyduğunuzda en iyisidir.
- GPU Hosting — Model eğitimi veya çıkarımı için GPU hızlandırması gerektiren Docker konteynerlerinin içinde çalışan AI/ML iş yükleri için mükemmeldir.
- cPanel ile VPS — Docker’ı web siteleri ve e-postayı yönetmek için kullanıcı dostu bir kontrol paneli ile birlikte kullanmanız gerekiyorsa, bu kombinasyon her iki dünyanın da en iyisini sunar.
CentOS’ta Docker Sorunlarının Giderilmesi
Docker Daemon Başlatılamıyor
Hata ayrıntıları için sistem günlüklerini kontrol edin:
journalctl -u docker --no-pager | tail -50İzin Reddedildi Hataları
Got permission denied while trying to connect to the Docker daemon socket görürseniz, kullanıcınızın docker grubunda olduğundan ve çıkış yapıp tekrar giriş yaptığınızdan emin olun.
İmaj Çekemiyor
Sunucunuzun giden internet erişimine ve DNS’in doğru şekilde çözümlendiğini doğrulayın:
curl -I https://registry-1.docker.ioKonteyner Ağ Sorunları
Ağ köprülerini yeniden başlatmak için Docker’ı yeniden başlatın:
sudo systemctl restart dockerSonuç
Docker’ı CentOS’a başarıyla yüklediniz ve konteynerlerle çalışmak için sağlam bir temele sahipsiniz. İşte kapsanan konuların kısa bir özeti:
- ✅ Sistemi güncellediniz ve bağımlılıkları yüklediniz
- ✅ Resmi Docker deposunu eklediniz
- ✅ Docker CE’yi yüklediniz ve kurulumu doğruladınız
- ✅ Docker’ı önyüklemede başlayacak şekilde yapılandırdınız
- ✅ Root olmayan kullanıcı erişimini ayarladınız
- ✅ Temel Docker komutlarını öğrendiniz
- ✅ Multi-konteyner yönetimi için Docker Compose’u yüklediniz
- ✅ Daemon yapılandırma seçeneklerini keşfettiniz
CentOS üzerinde Docker, izole geliştirme ortamlarını çalıştırmaktan üretimde ölçeklenebilir mikro hizmetler mimarileri dağıtmaya kadar sonsuz olanaklar sunar. Burada oluşturduğunuz konteynerizasyon becerileri, Kubernetes orkestrasyonu, CI/CD boru hatları ve bulut-yerel uygulama geliştirme gibi daha ileri konular için temel oluşturacaktır.
En iyi Docker deneyimi için sunucu ortamınızın göreve uygun olduğundan emin olun. Tüm konteynerleştirilmiş iş yükleriniz için güçlü, güvenilir ve uygun fiyatlı bir temel için AlexHost’un VPS Hosting planlarını keşfedin.
tasarruf edin