Neler yeni
Metin2 Support

Metin2 Dünyasına Hoş Geldiniz! Yeni bir maceraya adım atın ve topluluğumuza katılın. Sorularınızı sormak, deneyimlerinizi paylaşmak ve diğer oyuncularla iletişim kurmak için hemen kaydolun. Kayıt olun, etkileşimde bulunun ve Metin2 dünyasındaki serüveninizi daha da özel hale getirin. Birlikte oynamak için sabırsızlanıyoruz!

Docker Kurulumu Linux Üzerinde

iReeKaa

New member
Katılım
14 Mar 2025
Mesajlar
11
Tepkime puanı
3
Puanları
3

Docker Kurulumu Linux Üzerinde​

Docker, uygulamaları container adı verilen izole ortamlarda çalıştırmayı sağlayan en popüler sistemlerden biridir.

Linux sunucularda Docker kullanarak:

  • Web uygulamaları
  • Veritabanları
  • API servisleri
  • Otomasyon sistemleri
  • Geliştirme ortamları
  • Mikroservisler
daha düzenli ve taşınabilir şekilde çalıştırılabilir.

Docker özellikle sunucu yönetimi, DevOps ve yazılım geliştirme alanlarında oldukça yaygın kullanılmaktadır.

Docker Nedir?​

Docker, uygulamaları işletim sisteminden belirli ölçüde izole edilmiş container ortamlarında çalıştırmayı sağlar.

Normal bir uygulama kurulumunda:

  • Paketler
  • Kütüphaneler
  • Yapılandırmalar
doğrudan işletim sistemine yüklenebilir.

Docker'da ise uygulamanın ihtiyaç duyduğu bileşenlerin büyük bölümü container içerisinde tutulabilir.

Bu sayede uygulamaların birbirini etkileme ihtimali azaltılır.

Container Nedir?​

Container, uygulamanın çalışması için gerekli:

  • Dosyaları
  • Kütüphaneleri
  • Ayarları
  • Bağımlılıkları
barındıran izole çalışma ortamıdır.

Örneğin aynı Linux sunucuda:

  • PHP uygulaması
  • Node.js uygulaması
  • Redis
  • PostgreSQL
ayrı container'larda çalıştırılabilir.

Docker ile Sanal Makine Aynı mı?​

Hayır.

Docker container ile klasik sanal makine arasında önemli fark vardır.

Sanal Makine​

Her sanal makinede genellikle ayrı işletim sistemi bulunur.

Bu nedenle:

  • Daha fazla RAM
  • Daha fazla disk
  • Daha fazla CPU
kullanabilir.

Docker Container​

Host Linux kernel'ini paylaşır.

Bu nedenle genellikle daha hafiftir.

Docker Ne İşe Yarar?​

Docker sayesinde bir uygulama:

Benim bilgisayarımda çalışıyor ama sunucuda çalışmıyor

problemini azaltabilir.

Uygulama için gerekli ortam image içerisinde tanımlandığı için aynı yapı farklı sistemlerde daha kolay çalıştırılabilir.

Docker Kimler İçin Uygundur?​

Özellikle:

  • Yazılımcılar
  • Sistem yöneticileri
  • DevOps çalışanları
  • Hosting yöneticileri
  • SaaS geliştiricileri
için oldukça faydalıdır.

Docker nedir docker kurulumu docker kullanimi

Docker Kurmak İçin Ne Gerekir?​

Temel olarak:

  • Desteklenen Linux dağıtımı
  • Root veya sudo yetkisi
  • İnternet bağlantısı
  • Yeterli disk alanı
gereklidir.

Docker Hangi Linux Dağıtımlarında Kullanılır?​

Docker Engine birçok yaygın Linux dağıtımında kullanılabilir.

Örneğin:

  • Ubuntu
  • Debian
  • CentOS Stream
  • Fedora
resmî kurulum seçenekleri bulunan dağıtımlar arasındadır.

AlmaLinux ve Rocky Linux gibi RHEL tabanlı dağıtımlarda da Docker kullanılabilir ancak desteklenen repository ve sürüm uyumluluğu kontrol edilmelidir.

Docker Engine Nedir?​

Docker'ın Linux üzerinde container çalıştırmasını sağlayan temel sistemidir.

Docker Engine içerisinde genel olarak:

  • Docker daemon
  • Docker istemcisi
  • Container runtime
gibi bileşenler bulunur.

Docker Desktop ile Docker Engine Aynı mı?​

Hayır.

Docker Desktop daha çok:

  • Windows
  • macOS
  • Linux masaüstü
ortamlarında geliştirme amacıyla kullanılan paketlenmiş çözümdür.

Linux sunucularda genellikle doğrudan:

Docker Engine

kurulur.

Kurulumdan Önce Sistem Güncellenmeli mi?​

Evet.

Docker kurulmadan önce paket listelerinin ve sistem paketlerinin güncel olması faydalıdır.

Ancak üretim sunucusunda büyük sistem güncellemeleri uygulanmadan önce backup alınması önerilir.

Eski Docker Paketleri Kontrol Edilmeli mi?​

Evet.

Daha önce dağıtım repository'sinden veya farklı yöntemle kurulmuş:

  • Docker
  • containerd
  • runc
  • Docker Compose
paketleri yeni kurulumla çakışabilir.

Bu nedenle mevcut kurulum kontrol edilmelidir.

Docker'ı Resmî Repository'den Kurmak​

Üretim sistemlerinde en mantıklı yöntemlerden biri Docker'ın resmî paket repository'sini kullanmaktır.

Bu yöntemde:

  1. Docker repository'si sisteme eklenir.
  2. Repository anahtarı doğrulanır.
  3. Docker Engine paketleri kurulur.
  4. Docker servisi başlatılır.
  5. Kurulum test edilir.
Bu yöntem güncellemelerin paket yöneticisi üzerinden takip edilmesini kolaylaştırır.

Otomatik Kurulum Scripti Kullanılır mı?​

Docker tarafından sağlanan kolay kurulum yöntemleri bulunabilir.

Ancak otomatik kurulum scriptleri özellikle:

  • Test
  • Geliştirme
ortamlarında daha uygundur.

Üretim sunucularında hangi paketlerin kurulduğunu kontrol edebilmek için repository yöntemi tercih edilmesi daha sağlıklıdır.

Ubuntu Üzerinde Docker Kurulumu​

Ubuntu üzerinde genel kurulum mantığı şöyledir:

  1. Eski veya çakışan Docker paketları kontrol edilir.
  2. Docker'ın resmî repository'si eklenir.
  3. Gerekli güvenlik anahtarı yapılandırılır.
  4. Paket listesi güncellenir.
  5. Docker Engine kurulur.
  6. Docker servisi kontrol edilir.
  7. Test container'ı çalıştırılır.

Debian Üzerinde Docker Kurulumu​

Debian kurulumu Ubuntu'ya oldukça benzerdir.

Docker'ın resmî Debian repository'si kullanılır.

Kurulum sırasında dağıtımın:

  • Sürümü
  • Mimarisi
ile uyumlu repository seçilmelidir.

CentOS Stream Üzerinde Docker Kurulumu​

CentOS Stream gibi RPM tabanlı sistemlerde Docker repository'si DNF paket yöneticisine eklenebilir.

Daha sonra:

  • Docker Engine
  • Docker CLI
  • containerd
  • Buildx
  • Compose plugin
gibi bileşenler kurulabilir.

RPM tabanlı sistemlerde Docker servisini kurulumdan sonra ayrıca başlatmak gerekebilir.

Fedora Üzerinde Docker​

Fedora sistemlerde de Docker Engine kurulabilir.

Ancak Fedora hızlı güncellenen bir dağıtım olduğu için Docker sürümüyle sistem sürümünün uyumluluğu kontrol edilmelidir.

AlmaLinux Üzerinde Docker Kullanılır mı?​

Evet.

AlmaLinux üzerinde Docker yaygın olarak kullanılmaktadır.

RHEL tabanlı olduğu için kurulum mantığı RPM tabanlı sistemlere benzerdir.

Ancak üretim ortamında kullanılan AlmaLinux sürümünün Docker repository'siyle uyumluluğu kontrol edilmelidir.

Rocky Linux Üzerinde Docker Kullanılır mı?​

Evet.

Rocky Linux sistemlerde de Docker kullanılabilir.

Özellikle:

  • Web uygulamaları
  • CI/CD
  • DevOps
  • Mikroservis
ortamlarında tercih edilebilir.

Docker Kurulduktan Sonra Servis Kontrolü​

Kurulum sonrasında Docker servisinin gerçekten çalıştığından emin olunmalıdır.

Kontrol edilmesi gerekenler:

  • Docker servisi aktif mi?
  • Boot sırasında otomatik başlıyor mu?
  • Container çalıştırılabiliyor mu?

Docker'ın Otomatik Başlaması​

Sunucu yeniden başladığında Docker servisinin otomatik başlaması istenebilir.

Üretim sunucularında genellikle bu tercih edilir.

Ancak yalnızca Docker servisinin açılması container'ların otomatik çalışacağı anlamına gelmeyebilir.

Container restart politikaları ayrıca yapılandırılabilir.

Kurulum Testi​

Docker kurulumu sonrasında basit bir test image çalıştırılabilir.

Amaç:

  • Docker daemon çalışıyor mu?
  • Image indirilebiliyor mu?
  • Container oluşturulabiliyor mu?
kontrol etmektir.

Docker Image Nedir?​

Image, container oluşturmak için kullanılan hazır şablondur.

İçerisinde:

  • İşletim sistemi bileşenleri
  • Uygulama
  • Kütüphaneler
  • Yapılandırmalar
bulunabilir.

Container ile Image Arasındaki Fark​

Basit şekilde:

Image = Şablon

Container = Image'dan çalışan örnek


olarak düşünülebilir.

Aynı image kullanılarak birden fazla container oluşturulabilir.

Docker Hub Nedir?​

Docker image'larının yayınlandığı popüler registry hizmetlerinden biridir.

Buradan:

  • Nginx
  • Redis
  • PostgreSQL
  • Ubuntu
  • Node.js
gibi birçok image bulunabilir.

Her Docker Image Güvenli mi?​

Hayır.

İnternetten bulunan rastgele image'lar kullanılmamalıdır.

Mümkünse:

  • Resmî image
  • Doğrulanmış publisher
  • Güvenilir proje
tercih edilmelidir.

Docker Image Güncellenmeli mi?​

Evet.

Eski image içerisinde:

  • Güvenlik açığı
  • Eski paket
  • Eski uygulama
bulunabilir.

Image'lar belirli aralıklarla güncellenmelidir.

Docker Daemon Nedir?​

Docker container'larını yöneten arka plan servisidir.

Container:

  • Oluşturma
  • Başlatma
  • Durdurma
  • Volume
işlemlerini yönetir.

Docker CLI Nedir?​

Kullanıcının Docker daemon ile iletişim kurmasını sağlayan komut satırı aracıdır.

Container yönetimi çoğunlukla Docker CLI üzerinden yapılır.

containerd Nedir?​

Container yaşam döngüsünü yöneten önemli runtime bileşenlerinden biridir.

Docker Engine, containerd ile birlikte çalışabilir.

runc Nedir?​

Linux container'larının düşük seviyede çalıştırılmasına yardımcı olan runtime bileşenidir.

Normal kullanıcı çoğu zaman doğrudan runc ile işlem yapmaz.

Docker Compose Nedir?​

Birden fazla container'dan oluşan uygulamaları birlikte yönetmeyi kolaylaştırır.

Örneğin bir web uygulamasında:

  • Web
  • Database
  • Redis
container'ları bulunabilir.

Docker Compose bu servislerin tek proje olarak yönetilmesini kolaylaştırır.

Docker Compose Ayrı Kurulur mu?​

Modern Docker Engine kurulumlarında Compose, plugin şeklinde kurulabilir.

Eski sistemlerde kullanılan bağımsız Compose yapılarıyla karıştırılmamalıdır.

Docker Buildx Nedir?​

Docker image oluşturma işlemlerini geliştiren araçlardan biridir.

Özellikle:

  • Çoklu platform image
  • Gelişmiş build
işlemlerinde kullanılır.

Docker Volume Nedir?​

Container verilerinin kalıcı olarak saklanmasına yardımcı olur.

Çünkü container silindiğinde container'ın kendi içindeki bazı veriler kaybolabilir.

Örneğin veritabanı için volume kullanılması önemlidir.

Veritabanı Container'ında Volume Kullanılmalı mı?​

Kesinlikle önerilir.

Örneğin:

  • MySQL
  • MariaDB
  • PostgreSQL
container silinse bile veritabanı dosyalarının korunması gerekir.

Bu nedenle kalıcı volume kullanılabilir.

Bind Mount Nedir?​

Host üzerindeki belirli klasörün container içerisine bağlanmasıdır.

Örneğin uygulama dosyaları doğrudan host klasöründen container'a sunulabilir.

Volume ile Bind Mount Farkı​

Volume​

Docker tarafından yönetilir.

Bind Mount​

Doğrudan host dosya sistemi üzerindeki klasörü kullanır.

Her ikisinin farklı kullanım alanları vardır.

Docker Network Nedir?​

Container'ların:

  • Birbirleriyle
  • Host ile
  • İnternetle
nasıl iletişim kuracağını belirler.

Bridge Network​

Docker'ın yaygın network türlerinden biridir.

Container'lar özel bir sanal ağ üzerinden iletişim kurabilir.

Host Network​

Container doğrudan host network yapısını kullanabilir.

Bu yöntem daha az izolasyon sağlar ve kullanım senaryosuna göre dikkatli tercih edilmelidir.

Docker Port Publish Nedir?​

Container içerisindeki servisin host üzerinden erişilebilir hale getirilmesidir.

Örneğin container içerisindeki web server dışarıya açılabilir.

Docker Portları Güvenlik Açığı Oluşturabilir mi?​

Evet.

Yanlışlıkla:

  • Veritabanı
  • Redis
  • Yönetim paneli
public interface üzerinden yayınlanabilir.

Bu nedenle hangi container'ın hangi portu yayınladığı düzenli kontrol edilmelidir.

Docker ve Firewall​

Docker kurulumu firewall davranışını etkileyebilir.

Bu özellikle önemli bir konudur.

Docker bazı network kurallarını kendisi oluşturabilir.

Bu nedenle:

  • UFW
  • firewalld
  • iptables
  • nftables
kullanılan sistemlerde Docker network yapısı ayrıca değerlendirilmelidir.

UFW Kullanırken Dikkat​

Docker tarafından yayınlanan container portları bazı yapılandırmalarda beklenen UFW kurallarının dışında erişilebilir hale gelebilir.

Bu nedenle sadece:

UFW'de port kapalı

olmasına güvenilmemelidir.

Container'ın gerçek port yayınlama durumu kontrol edilmelidir.

Docker Firewall Güvenliği​

Profesyonel sistemlerde:

  • Docker port yayınlama
  • Host firewall
  • Cloud firewall
  • Reverse proxy
birlikte değerlendirilmelidir.

DOCKER-USER Zinciri Nedir?​

Docker'ın oluşturduğu firewall yapısında kullanıcı tarafından ek filtreleme yapılabilecek özel alanlardan biridir.

Özellikle container trafiğine ek güvenlik politikası uygulanmasında kullanılabilir.

IPv6 Docker'da Kullanılır mı?​

Evet.

Docker network yapısı IPv6 destekleyebilir.

Sunucuda IPv6 aktifse container portlarının IPv6 üzerinden de erişilebilir olup olmadığı kontrol edilmelidir.

Docker ve Reverse Proxy​

Birden fazla web container'ı aynı sunucuda çalışıyorsa reverse proxy kullanılabilir.

Örneğin:

  • Nginx
  • Traefik
  • HAProxy
  • Caddy
gibi çözümler tercih edilebilir.

Reverse Proxy Ne Sağlar?​

Dışarıdan gelen:

  • HTTP
  • HTTPS
trafiğini uygun container'a yönlendirir.

Aynı zamanda:

  • SSL
  • Domain
  • Load balancing
yönetimini kolaylaştırabilir.

Her Container'a Ayrı Public Port Açmak Gerekir mi?​

Hayır.

Web uygulamalarında reverse proxy kullanılarak sadece:

  • 80
  • 443
gibi web portları dışarıya açılabilir.

Arka plandaki container'lar internal network üzerinden haberleşebilir.

Docker'da Root Kullanımı​

Docker daemon'a erişimi olan kullanıcı çok yüksek yetkilere sahip olabilir.

Bu nedenle Docker grubuna kullanıcı eklemek basit bir normal kullanıcı yetkisi değildir.

Docker Grubu Güvenli mi?​

Docker grubuna eklenen kullanıcılar pratikte sistem üzerinde çok yüksek yetki elde edebilir.

Bu nedenle sadece gerçekten güvenilen yönetici kullanıcılar eklenmelidir.

Docker'ı Sudo Olmadan Kullanmak​

Kullanıcı Docker grubuna eklenerek mümkün olabilir.

Ancak bu işlemin güvenlik etkisi anlaşılmalıdır.

Docker grubuna herkesi eklemek doğru değildir.

Rootless Docker Nedir?​

Docker daemon ve container'ların root yetkisi olmadan çalıştırılmasını amaçlayan moddur.

Bazı kullanım senaryolarında güvenliği artırabilir.

Ancak:

  • Network
  • Port
  • Depolama
gibi alanlarda farklı sınırlamalar bulunabilir.

Container İçinde Root Olmak​

Container içerisinde root kullanıcı olmak host root ile tamamen aynı değildir.

Ancak yine de güvenlik risklerini artırabilir.

Mümkünse uygulama container'ları daha düşük yetkili kullanıcılarla çalıştırılabilir.

Privileged Container Nedir?​

Container'a çok geniş host yetkileri verilmesidir.

Güvenlik açısından oldukça güçlü bir izni ifade eder.

Gerçekten gerekmedikçe kullanılmamalıdır.

Docker Socket Nedir?​

Docker daemon ile iletişim sağlayan kritik bir socket'tir.

Docker socket'e erişimi olan container veya kullanıcı host üzerinde yüksek yetki kazanabilir.

Bu nedenle kontrolsüz şekilde container içine bağlanmamalıdır.

Docker Secret Yönetimi​

Uygulamalarda:

  • Veritabanı parolası
  • API key
  • Token
gibi bilgilerin image içerisine açık şekilde yazılmaması gerekir.

Secret bilgileri güvenli yöntemlerle yönetilmelidir.

Environment Variable Kullanımı​

Uygulama yapılandırmaları için sık kullanılır.

Ancak environment variable içinde bulunan hassas bilgilerin log veya yönetim araçlarında görünmemesine dikkat edilmelidir.

Docker Image İçine Parola Yazmak​

Yanlış bir yöntemdir.

Image başka kullanıcıyla paylaşılırsa parola da açığa çıkabilir.

Hassas bilgiler image'dan ayrı tutulmalıdır.

Dockerfile Nedir?​

Docker image oluşturmak için gerekli adımları tanımlayan yapılandırma dosyasıdır.

Uygulamanın:

  • Hangi base image'ı kullanacağı
  • Hangi bağımlılıkların kurulacağı
  • Nasıl çalışacağı
burada tanımlanabilir.

Dockerfile Kullanmak İçin Kod Bilmek Şart mı?​

Temel seviyede hayır.

Ancak özel image oluşturmak için Dockerfile mantığını öğrenmek gerekir.

Base Image Nedir?​

Kendi Docker image'ınızın temel aldığı image'dır.

Örneğin uygulama:

  • Ubuntu
  • Alpine
  • Node
  • PHP
tabanlı image kullanabilir.

Alpine Linux Neden Docker'da Popüler?​

Oldukça küçük bir Linux dağıtımıdır.

Bu nedenle image boyutunu azaltabilir.

Ancak her uygulama için Alpine kullanmak zorunlu veya ideal değildir.

Uyumluluk kontrol edilmelidir.

Image Boyutu Neden Önemli?​

Büyük image:

  • Daha uzun indirme süresi
  • Daha fazla disk
  • Daha uzun deployment
anlamına gelebilir.

Gereksiz paketlerin image içerisinde tutulmaması faydalıdır.

Multi-Stage Build Nedir?​

Image oluşturma sırasında derleme ortamıyla final çalışma ortamını ayırmayı sağlar.

Bu sayede final image daha küçük ve daha güvenli olabilir.

Container Logları​

Docker container'larının ürettiği loglar takip edilebilir.

Özellikle:

  • Hata
  • Uygulama çökmesi
  • Bağlantı problemi
durumlarında önemlidir.

Docker Logları Disk Doldurabilir mi?​

Evet.

Kontrolsüz şekilde büyüyen container logları host diski doldurabilir.

Bu nedenle log rotation yapılandırılması önemlidir.

Disk Dolarsa Docker Ne Olur?​

Container'lar:

  • Yeni dosya yazamayabilir
  • Veritabanı hata verebilir
  • Image indirilemeyebilir
Bu nedenle disk kullanımı sürekli izlenmelidir.

Docker Ne Kadar Disk Kullanır?​

Kullanıma göre değişir.

Disk tüketen başlıca öğeler:

  • Images
  • Containers
  • Volumes
  • Build cache
  • Logs
dır.

Kullanılmayan Image'lar​

Zamanla eski image'lar disk üzerinde birikebilir.

Ancak üretim sisteminde hangi image'ın gerekli olduğu anlaşılmadan toplu temizlik yapılmamalıdır.

Dangling Image Nedir?​

Artık aktif olarak kullanılmayan bazı image katmanlarını ifade edebilir.

Disk temizliği sırasında değerlendirilebilir.

Docker Volume Silmek Tehlikeli mi?​

Evet.

Volume içerisinde:

  • Veritabanı
  • Uygulama dosyası
  • Kullanıcı verisi
bulunabilir.

Kullanılmadığı kesin olmayan volume silinmemelidir.

Docker Backup Nasıl Yapılır?​

Docker yedeğinde yalnızca container'ları yedeklemek yeterli değildir.

Önemli olan:

  • Volume verileri
  • Compose dosyaları
  • Uygulama yapılandırmaları
  • Veritabanı
dır.

Container Yedeği ile Veritabanı Yedeği Aynı mı?​

Hayır.

Örneğin MySQL container'ını yedeklemek yerine veritabanının doğru yöntemle export edilmesi daha güvenli olabilir.

Ayrıca volume yedeği de alınabilir.

Docker Compose Dosyaları Yedeklenmeli mi?​

Evet.

Bir uygulamanın container mimarisini tekrar oluşturmak için Compose yapılandırmaları oldukça önemlidir.

Docker Güncellemesi​

Docker Engine ve container image'ları ayrı ayrı güncellenir.

Docker Engine güncel olsa bile container içinde eski uygulama çalışıyor olabilir.

Container Güncellemesi Nasıl Olur?​

Genellikle yeni image indirilir ve eski container yerine yeni image'dan container oluşturulur.

Container içinde manuel güncelleme yapmak uzun vadede yönetimi zorlaştırabilir.

Immutable Mantığı​

Docker dünyasında container'ı sürekli elle değiştirmek yerine yeni image oluşturup container'ı yeniden oluşturmak daha düzenli bir yaklaşımdır.

Restart Policy Nedir?​

Container'ın:

  • Host yeniden başladığında
  • Container çöktüğünde
tekrar başlatılıp başlatılmayacağını belirleyebilir.

Her Container Otomatik Restart Olmalı mı?​

Her zaman değil.

Örneğin:

  • Web uygulaması
  • Veritabanı
için mantıklı olabilir.

Tek seferlik çalışan görevlerde gereksiz olabilir.

Healthcheck Nedir?​

Container içerisindeki uygulamanın gerçekten sağlıklı çalışıp çalışmadığını kontrol etmeye yardımcı olur.

Container'ın process'i açık olabilir ancak uygulama cevap vermiyor olabilir.

Monitoring Kullanılmalı mı?​

Evet.

Takip edilmesi gerekenler:

  • CPU
  • RAM
  • Container durumu
  • Disk
  • Network
  • Restart sayısı
dır.

Docker Container Çok RAM Kullanabilir mi?​

Evet.

Varsayılan yapılandırmada bazı container'lar host kaynaklarının önemli bölümünü tüketebilir.

Kaynak limitleri belirlenebilir.

Container CPU Limiti​

Belirli container'ın kullanabileceği CPU sınırlandırılabilir.

Özellikle çok uygulamalı sunucularda faydalıdır.

RAM Limiti​

Container'a maksimum bellek sınırı verilebilir.

Ancak çok düşük limit uygulamanın OOM nedeniyle kapanmasına neden olabilir.

Docker ve Swap​

Container bellek politikalarında swap davranışı da dikkate alınabilir.

Kritik uygulamalarda performans açısından doğru RAM planlaması yapılmalıdır.

Bir Sunucuda Kaç Container Çalıştırılabilir?​

Sabit bir sayı yoktur.

Şunlara bağlıdır:

  • CPU
  • RAM
  • Disk
  • Uygulama yükü
  • Trafik
Aynı sunucuda 100 hafif container çalışabilirken 5 ağır veritabanı container'ı sistemi zorlayabilir.

Docker Kaynakları Otomatik İzole Eder mi?​

Belirli izolasyon sağlar.

Ancak kaynak limitleri uygulanmazsa bir container host CPU veya RAM'inin büyük bölümünü tüketebilir.

Docker ile Hosting Yapılır mı?​

Teknik olarak evet.

Özellikle uygulama bazlı izolasyon için kullanılabilir.

Ancak klasik paylaşımlı hosting sistemlerinden farklı yönetim yaklaşımı gerekir.

Docker ile WordPress Kurulur mu?​

Evet.

Genellikle:

  • WordPress
  • MySQL/MariaDB
  • Reverse proxy
gibi bileşenler ayrı container'larda çalıştırılabilir.

WordPress Docker'da Mantıklı mı?​

Geliştirme, test veya belirli production mimarilerinde faydalı olabilir.

Ancak sadece tek basit WordPress sitesi için Docker kullanmak şart değildir.

Standart hosting ortamı daha kolay olabilir.

Docker ile MySQL Kullanılır mı?​

Evet.

Ancak:

  • Volume
  • Backup
  • RAM
  • Disk I/O
doğru yapılandırılmalıdır.

Veritabanının container'da olması yedekleme ihtiyacını ortadan kaldırmaz.

Docker ile Nginx​

Nginx Docker üzerinde oldukça sık kullanılır.

Örneğin:

  • Reverse proxy
  • Web server
  • Statik içerik
amaçlı çalıştırılabilir.

Docker ile Redis​

Redis container olarak kolayca çalıştırılabilir.

Ancak Redis portunun public internete yanlışlıkla açılmamasına dikkat edilmelidir.

Docker ile Portainer​

Portainer, Docker ortamlarını grafik arayüz üzerinden yönetmeyi kolaylaştıran araçlardan biridir.

Özellikle yeni başlayanlar için:

  • Container
  • Image
  • Volume
  • Network
yönetimini görsel hale getirebilir.

Portainer Kullanmak Şart mı?​

Hayır.

Docker tamamen terminal üzerinden yönetilebilir.

Portainer yalnızca yönetimi kolaylaştıran ek araçtır.

Portainer İnternete Açılmalı mı?​

Yönetim paneli olduğu için dikkatli olunmalıdır.

Mümkünse:

  • VPN
  • IP whitelist
  • Güçlü authentication
ile korunmalıdır.

Docker ve SELinux​

AlmaLinux, Rocky Linux ve RHEL tabanlı sistemlerde SELinux Docker volume ve dosya erişimini etkileyebilir.

Bir izin sorunu oluştuğunda SELinux'u direkt kapatmak yerine doğru politika ve label ayarları araştırılmalıdır.

Docker containers e1636058478386

Docker ve AppArmor​

Ubuntu gibi sistemlerde AppArmor container güvenliğinde ek izolasyon katmanı sağlayabilir.

Gereksiz yere devre dışı bırakılmamalıdır.

Docker Güncel Tutulmalı mı?​

Evet.

Docker Engine güvenlik ve hata düzeltmeleri alır.

Üretim sistemlerinde güncellemeler:

  • Backup
  • Test
  • Bakım planı
ile uygulanmalıdır.

Docker Engine Güncellenince Container'lar Etkilenir mi?​

Bazı güncellemelerde Docker servisi yeniden başlatılabilir.

Bu nedenle canlı production ortamında bakım planı yapılmalıdır.

Sunucuyu Reboot Edince Container'lar Açılır mı?​

Restart policy ve Docker servis yapılandırmasına bağlıdır.

Bu nedenle kurulum sonrası reboot testi yapmak faydalı olabilir.

Docker Root Directory​

Docker:

  • Image
  • Container
  • Volume metadata
gibi birçok veriyi host disk üzerinde belirli dizinde tutar.

Bu alanın disk kullanımı takip edilmelidir.

Docker İçin Ayrı Disk Kullanılır mı?​

Büyük production sistemlerde kullanılabilir.

Özellikle:

  • Image
  • Volume
  • Log
yükü fazlaysa ayrı disk veya storage kullanımı faydalı olabilir.

SSD mi HDD mi?​

Docker uygulamalarında özellikle:

  • Veritabanı
  • Çok sayıda küçük dosya
  • Yoğun log
bulunuyorsa SSD veya NVMe önemli performans avantajı sağlar.

Docker ve ZFS​

Bazı özel depolama mimarilerinde Docker ile kullanılabilir.

Ancak storage driver ve performans davranışları iyi anlaşılmalıdır.

Docker ve OverlayFS​

Linux sistemlerde Docker'ın yaygın kullandığı storage yöntemlerinden biridir.

Image katmanlarının verimli yönetilmesine yardımcı olur.

Production Docker Kurulumunda Dikkat Edilecekler​

  • Resmî repository kullanın
  • Sistemi güncel tutun
  • Gereksiz port açmayın
  • Volume kullanın
  • Backup alın
  • Resource limit uygulayın
  • Log rotation yapılandırın
  • Monitoring kullanın
  • Güvenilir image tercih edin
  • Docker socket'i koruyun

Geliştirme Ortamında Docker​

Yazılımcı kendi bilgisayarında production ortamına benzer yapı oluşturabilir.

Bu:

  • Takım çalışması
  • Test
  • Deployment
süreçlerini kolaylaştırır.

Test Ortamı​

Uygulamanın yeni sürümü önce Docker üzerinde test edilebilir.

Sorun yoksa production'a alınabilir.

CI/CD ile Docker​

Docker image'ları:

  • Build
  • Test
  • Deploy
süreçlerinin otomatikleştirilmesinde çok yaygın kullanılır.

Registry Nedir?​

Docker image'larının depolandığı sistemdir.

Örneğin:

  • Docker Hub
  • Özel registry
kullanılabilir.

Private Registry​

Şirketin kendi image'larını herkese açık olmadan saklamasını sağlar.

Özel uygulamalarda faydalıdır.

Registry Güvenliği​

Registry içerisinde özel yazılım bulunabileceği için:

  • Authentication
  • SSL
  • Yetkilendirme
kullanılmalıdır.

Docker Kurulumunda En Sık Yapılan Hatalar​

Eski Paketleri Kontrol Etmemek​

Paket çakışmasına neden olabilir.

Rastgele Kurulum Scripti Çalıştırmak​

Üretim sisteminde ne kurulduğunu takip etmeyi zorlaştırabilir.

Docker Portlarını Kontrol Etmemek​

Veritabanı yanlışlıkla internete açılabilir.

Docker Grubuna Herkesi Eklemek​

Yüksek sistem yetkisi verebilir.

Volume Kullanmamak​

Container silindiğinde veri kaybı oluşabilir.

Backup Almamak​

Container kullanmak backup'ın yerine geçmez.

Log Limitlerini Ayarlamamak​

Disk tamamen dolabilir.

Rastgele Image Kullanmak​

Güvenlik riski oluşturabilir.

Container'ları Sürekli Root Olarak Çalıştırmak​

Gereksiz yetki sağlar.

Güncellemeleri Unutmak​

Eski Docker Engine veya image güvenlik riski oluşturabilir.

Docker Kurulum Sonrası Kontrol Listesi​

  • Docker Engine kuruldu mu?
  • Docker servisi çalışıyor mu?
  • Boot sırasında otomatik başlıyor mu?
  • Test container'ı çalışıyor mu?
  • Docker Compose kullanılabiliyor mu?
  • Firewall kontrol edildi mi?
  • Public portlar kontrol edildi mi?
  • IPv6 erişimi kontrol edildi mi?
  • Docker kullanıcı yetkileri doğru mu?
  • Volume yapısı planlandı mı?
  • Backup sistemi hazır mı?
  • Log rotation ayarlandı mı?
  • Monitoring aktif mi?

İlk Docker Sunucusu İçin Önerilen Sıra​

Yeni başlayan biri şu sırayla ilerleyebilir:

  1. Desteklenen Linux dağıtımını kurun.
  2. İşletim sistemini güncelleyin.
  3. Docker'ın resmî repository'sini ekleyin.
  4. Docker Engine'i kurun.
  5. Docker servisini başlatın.
  6. Test container'ı çalıştırın.
  7. Image ve container mantığını öğrenin.
  8. Volume kullanımını öğrenin.
  9. Docker network yapısını öğrenin.
  10. Docker Compose'a geçin.
  11. Firewall güvenliğini kontrol edin.
  12. Backup sistemi oluşturun.

Docker Öğrenirken İlk Proje​

İlk olarak basit bir web server container'ı kullanılabilir.

Daha sonra:

  • Web uygulaması
  • Veritabanı
  • Reverse proxy
eklenerek çok container'lı yapı oluşturulabilir.

Docker Kullanmak Zorunlu mu?​

Hayır.

Basit bir sunucuda:

  • Nginx
  • PHP
  • MySQL
doğrudan işletim sistemine kurulabilir.

Docker daha çok:

  • İzolasyon
  • Taşınabilirlik
  • Otomasyon
  • Kolay deployment
gereken durumlarda avantaj sağlar.

Docker'ın Avantajları​

Hızlı Kurulum​

Hazır image kullanılarak uygulamalar kısa sürede çalıştırılabilir.

İzolasyon​

Uygulamaların bağımlılıkları birbirinden ayrılabilir.

Taşınabilirlik​

Aynı container farklı sistemlerde çalıştırılabilir.

Kolay Deployment​

Yeni sürüm dağıtmak daha düzenli hale gelir.

Kaynak Verimliliği​

Klasik sanal makinelere göre genellikle daha hafiftir.

Docker'ın Dezavantajları​

Öğrenme Gerektirir​

Container, image, network ve volume mantığının öğrenilmesi gerekir.

Network Karmaşıklaşabilir​

Çok container'lı yapılarda network yönetimi zorlaşabilir.

Yanlış Port Açma Riski​

Servisler yanlışlıkla internete açılabilir.

Veri Yönetimi​

Volume ve backup doğru yapılmazsa veri kaybı yaşanabilir.

Güvenlik Yanılgısı​

Container kullanmak uygulamayı otomatik olarak güvenli hale getirmez.

Docker Güvenli midir?​

Doğru kullanıldığında güçlü izolasyon ve yönetim avantajları sağlar.

Ancak şu hatalar risklidir:

  • Privileged container
  • Public Docker socket
  • Güvensiz image
  • Gereksiz root kullanımı
  • Public veritabanı portları
Bu nedenle Docker güvenliği ayrıca planlanmalıdır.

Docker ile Sanal Makine Birlikte Kullanılır mı?​

Evet.

Örneğin:

Fiziksel Sunucu → VDS → Linux → Docker → Container

şeklinde yapı oluşturulabilir.

Bu oldukça yaygın bir mimaridir.

VDS Üzerinde Docker​

VDS/VPS üzerinde Docker kullanılabilir.

Ancak sanallaştırma platformunun gerekli Linux kernel özelliklerini desteklemesi gerekir.

Standart modern VDS sistemlerinde genellikle sorun yaşanmaz.

Nested Sanallaştırma Gerekir mi?​

Docker klasik sanal makine sistemi olmadığı için çoğu normal Linux VDS üzerinde nested virtualization gerekmez.

Bu, Docker'ın önemli avantajlarından biridir.

Docker Production İçin Uygun mu?​

Evet.

Docker dünya genelinde çok sayıda production sisteminde kullanılmaktadır.

Ancak production ortamında:

  • Monitoring
  • Backup
  • Security
  • Resource management
  • Update
süreçleri doğru kurulmalıdır.

Kubernetes Gerekir mi?​

Her Docker sistemi için hayır.

Tek veya birkaç sunucuda Docker Compose yeterli olabilir.

Kubernetes daha çok:

  • Çok sayıda servis
  • Çok sayıda node
  • Otomatik ölçekleme
  • Yüksek erişilebilirlik
gereken yapılarda değerlendirilebilir.

Docker Compose mu Kubernetes mi?​

Küçük ve orta projelerde:

Docker Compose

çok daha kolay olabilir.

Büyük dağıtık sistemlerde:

Kubernetes

değerlendirilebilir.

Gereksiz yere karmaşık altyapı kurulmamalıdır.

Docker Kurulumunda En Önemli Güvenlik Noktaları​

Özet olarak:

  • Resmî paket kullanın
  • Güvenilir image kullanın
  • Gereksiz port açmayın
  • Database portlarını public yapmayın
  • Docker socket'i koruyun
  • Docker grubuna gereksiz kullanıcı eklemeyin
  • Container'lara gereksiz privileged yetkisi vermeyin
  • Volume ve backup kullanın
  • Firewall'u test edin
  • Docker ve image'ları güncel tutun

Sonuç​

Docker, Linux üzerinde uygulamaları container yapısında çalıştırmak için kullanılan güçlü ve esnek bir platformdur.

Kurulum sırasında en sağlıklı yöntem genellikle Docker'ın resmî repository'sini kullanmak ve kullanılan Linux dağıtımına uygun Docker Engine paketlerini yüklemektir.

Kurulum tamamlandıktan sonra yalnızca Docker servisinin çalışması yeterli değildir.

Aynı zamanda:

  • Container
  • Image
  • Volume
  • Network
  • Port
  • Firewall
  • Backup
  • Monitoring
yapıları da doğru şekilde planlanmalıdır.

Özellikle veritabanı gibi kalıcı veri kullanan uygulamalarda volume ve backup sistemi mutlaka oluşturulmalıdır.

Ayrıca Docker tarafından yayınlanan portların firewall kurallarıyla nasıl etkileştiği kontrol edilmelidir. Bir portun normal Linux firewall yapılandırmasında kapalı görünmesi, Docker üzerinden kesinlikle erişilemeyeceği anlamına gelmeyebilir.

Yeni başlayanlar için en mantıklı yaklaşım önce tek bir test container'ı çalıştırmak, ardından volume ve network mantığını öğrenmek ve daha sonra Docker Compose ile birden fazla servisten oluşan uygulamalara geçmektir.

Kısacası Docker kurulumu yalnızca yazılımı sunucuya yüklemekten ibaret değildir. Sağlıklı bir Docker sistemi için kurulum, güvenlik, kalıcı veri yönetimi, ağ yapılandırması ve yedekleme birlikte düşünülmelidir.
 

Konuyu görüntüleyenler

  • Üst