Docker konteyner yönetimi nasıl yapılır: 7 adımda pratik rehber

Docker konteyner yönetimi nasıl yapılır: 7 adımda pratik rehber Docker konteyner yönetimi, yazılım geliştirme süreçlerinde uygulamaların hızlı, güvenilir ve taşınabilir şekilde çalıştırılmasını sağlar. Bu rehberde, Docker konteyner yönetimini kolaylaştıracak temel adımları ve dikkat edilmesi gereken noktaları…

4
Paylaş
Docker konteyner yönetimi nasıl yapılır: 7 adımda pratik rehber

Docker konteyner yönetimi nasıl yapılır: 7 adımda pratik rehber

Docker konteyner yönetimi, yazılım geliştirme süreçlerinde uygulamaların hızlı, güvenilir ve taşınabilir şekilde çalıştırılmasını sağlar. Bu rehberde, Docker konteyner yönetimini kolaylaştıracak temel adımları ve dikkat edilmesi gereken noktaları sade bir dille aktaracağız. Böylece uygulamalarınızı izole edip kaynak kullanımını optimize ederken, yönetim süreçlerinizi de hızlandırabilirsiniz.

Docker konteyner yönetimi

Docker kurulumu ve temel yapılandırma

Docker konteyner yönetiminin ilk aşaması, Docker Engine’in sisteminize kurulması ve temel yapılandırmanın yapılmasıdır. Linux, Windows veya macOS için Docker’ın resmi sitesinden uygun sürümü indirip kurabilirsiniz. Kurulum sonrası `docker version` ve `docker info` komutlarıyla ortamın doğru çalıştığını doğrulamak önemlidir.

Kurulumdan sonra Docker daemon otomatik olarak çalışmaya başlar. İhtiyaç halinde Docker Compose gibi ek araçlar da kurulabilir. Ayrıca, kullanıcı izinlerinin doğru verilmesi konteyner yönetiminde erişim sorunlarını önler.

  • Docker’ın kurulu olduğundan emin olun
  • Kullanıcı izinlerini kontrol edin
  • Docker Compose ve CLI araçlarını hazırlayın

Docker image hazırlama ve optimize etme

Docker konteynerler, temel olarak image’lerden oluşturulur. Image, uygulamanızın kodu, bağımlılıkları ve çalışma ortamını içeren bir şablondur. Image oluşturmak için Dockerfile adlı betik kullanılır. Dockerfile’da uygulamanızın hangi taban imaj üzerinde çalışacağı, hangi dosyaların kopyalanacağı ve hangi komutların çalıştırılacağı adım adım tanımlanır.

Optimize edilmiş Dockerfile, konteynerin hızlı açılmasını ve az kaynak tüketmesini sağlar. Örneğin, Alpine tabanlı minimal image tercih etmek, gereksiz katmanları tek bir RUN komutunda toplamak performansı artırır.

  • Dockerfile ile bağımlılıkları tanımlayın
  • Minimal base image kullanın (Alpine, Slim vb.)
  • Katman sayısını azaltmak için komutları birleştirin

Konteyner oluşturma, başlatma ve temel yönetim

Hazırladığınız image’i `docker build` ile derledikten sonra, `docker run` komutuyla konteyner başlatabilirsiniz. Bu aşamada port yönlendirmeleri, volume bağlama ve çevresel değişkenler gibi parametreler belirlenir. Örneğin, web uygulamalarında 80 portunu konteyner dışına açmak gerekebilir.

Konteyner başlatıldıktan sonra durdurma, yeniden başlatma veya silme işlemleri için `docker stop`, `docker restart`, `docker rm` komutlarını kullanabilirsiniz.

  • `docker run` ile konteyner başlatın
  • Port ve volume parametrelerini ayarlayın
  • Temel yönetim komutlarını öğrenin

Konteyner izleme ve log yönetimi

Docker konteynerlerinin performansını ve durumunu düzenli izlemek, olası sorunları erken fark etmenizi sağlar. `docker ps` ile çalışan konteynerleri listeleyebilir, `docker stats` ile CPU, bellek kullanımı gibi kaynak bilgilerini görebilirsiniz. Uygulama logları ise `docker logs` komutuyla incelenir.

Log dosyalarının büyümesini önlemek için log rotasyonu ayarlamak veya merkezi log yönetimi çözümleri kullanmak faydalıdır. Ayrıca, sağlık kontrolleri (`HEALTHCHECK`) ekleyerek konteynerlerin durumunu otomatik takip edebilirsiniz.

  • `docker ps`, `docker stats` komutlarını kullanın
  • `docker logs` ile uygulama çıktılarını takip edin
  • Sağlık kontrolleri ile konteyner durumunu izleyin

Güncelleme ve sürüm kontrolü

Konteyner tabanlı uygulamalar genellikle güncelleme ihtiyacı duyar. Bu durumda yeni bir image oluşturup eski konteyneri durdurmak ve silmek gerekir. `docker pull` ile resmi image güncellemeleri alınabilir veya kendi Dockerfile’ınızdan yeni image build edebilirsiniz.

Sürüm kontrolü için image tag’leri (örn: v1.0, v1.1) kullanılmalı ve güncelleme süreçleri CI/CD araçlarıyla otomatik hale getirilmelidir. Böylece manuel hatalar azalır ve sürüm takibi kolaylaşır.

  • Yeni image oluşturup tag verin
  • Eski konteyneri durdurup silin
  • CI/CD ile güncellemeyi otomatikleştirin

Kaynak yönetimi ve performans sınırlandırma

Konteynerlerin sistem kaynaklarını kontrolsüz kullanması, ana sistem performansını olumsuz etkileyebilir. Docker, konteyner bazında CPU ve bellek sınırları koymaya olanak tanır. `–memory`, `–cpus` gibi parametrelerle konteynerlerin tüketebileceği kaynaklar sınırlandırılabilir.

Düzenli performans takibi yaparak darboğazları tespit edip kaynakları optimize etmek, ölçeklenebilir ve stabil uygulama çalıştırmanın anahtarıdır.

  • `docker run` ile kaynak sınırları belirleyin
  • `docker stats` ile performansı takip edin
  • Kaynak kullanımını düzenli gözlemleyin

Güvenlik önlemleri ve ağ yapılandırması

Docker konteyner yönetiminde güvenlik kritik bir konudur. Konteynerler izole olsa da yanlış yapılandırmalar saldırı riskini artırır. Güncel ve güvenilir image kullanmak, gereksiz servisleri kaldırmak, kullanıcı izinlerini sınırlandırmak temel önlemlerdir.

Ağ tarafında ise sadece gerekli portlar açılmalı, konteynerler arası iletişim kontrollü olmalı ve firewall kuralları uygulanmalıdır. Docker network özellikleriyle izole ağlar oluşturabilir, hassas verileri koruyabilirsiniz.

  • Güvenlik yamalarını düzenli uygulayın
  • İzinleri ve kullanıcıları kısıtlayın
  • Ağ erişimlerini minimuma indirin

Editörün Notu

Docker konteyner yönetimi, uygulamalarınızı izole edip kaynakları verimli kullanmanızı sağlar. Bu rehberdeki adımları uygulayarak hem basit hem de orta düzeyde Docker yönetimi yapabilir, günlük işlerinizi hızlandırabilirsiniz.

Ek okuma / Kaynak: Docker Resmi Dokümantasyon

İlgili yazılar:

Emre Demir
Yazar

Yazılım Editörü

Yazılım editörü ve full-stack geliştirici. Uygulama incelemeleri, kodlama rehberleri ve verimlilik araçları üzerine yazıyor. Açık kaynak projelere katkıda bulunuyor; karmaşık konuları yeni başlayanların anlayacağı şekilde anlatmaya özen gösteriyor.

Tüm yazıları gör →