Docker Compose networks (ağlar) bölümü nasıl kullanılır?

Docker’ da Ağ Yönetimi

Docker, uygulama geliştirme ve dağıtımı için izole bir ortam sağlarken, konteynerlerin birbiriyle etkileşmesi için ağ yönetimi de önemli bir rol oynamaktadır. Docker Compose, birden fazla konteyneri aynı anda yönetmeyi kolaylaştıran bir araçtır ve ağ yapılandırması, bu işlemin temel bir bileşenidir. Docker Compose, her bir hizmet için varsayılan olarak bir ağ oluşturur ve bu hizmetler bu ağa bağlıdır. Böylece, servisler arasında iletişim sağlanır ve izole edilmiş ortamlar oluşturulur.

Ağ Türleri

Docker Compose, birden fazla ağ türünü destekler. Bunlar arasında bridge (köprü), host (ana makine) ve overlay (katmanlı) ağlar bulunur. Bu ağ türleri, uygulamanın nasıl birbirleriyle etkileşeceğini belirlemek için yapılandırılabilir.

– Bridge Ağı: Varsayılan ağ türüdür. Konteynerlerin, yerel bir ağ üzerinde iletişim kurmasını sağlar. Bu tür ağlar, birden fazla konteynerin birbirine bağlanmasını ve yalnızca belirli konteynerlerin birbirleriyle iletişim kurmasını istediğiniz durumlar için idealdir.

– Host Ağı: Ana makinenin ağ yığını kullanılarak doğrudan konteynerlere erişim sağlanır. Bu durumda, konteynerler ana makinenin IP adresini kullanır. Bu, performans açısından avantaj sağlar, ancak konteynerlerin birbirleriyle izole olmasını zorlaştırır.

– Overlay Ağı: Genellikle çoklu Docker host’larını bir araya getirerek ölçeklendirilmiş uygulama senaryoları için kullanılır. Bu tür ağlar, konteynerlerin farklı host’larda olmasına rağmen birbiriyle iletişim kurmasını sağlar.

Docker Compose Dosyasında Ağ Tanımlama

Docker Compose dosyalarında, ağlar `networks` anahtar kelimesi ile tanımlanır. Aşağıda basit bir örnek verilmektedir:

“`yaml
version: ‘3’
services:
web:
image: nginx
networks:
– frontend
database:
image: postgres
networks:
– backend

networks:
frontend:
backend:
“`

Yukarıdaki örnekte, iki farklı ağ tanımlanmıştır: `frontend` ve `backend`. Her hizmet, istediği ağlara bağlanacak şekilde yapılandırılmıştır. Örneğin, `web` servisi `frontend` ağında yer alırken, `database` servisi `backend` ağında bulunmaktadır.

Ağların Özelleştirilmesi

Ağlar, belirli ayarlarla daha da özelleştirilebilir. Örneğin, ağın sürüm numarasını, sürüm kontrolü, ipam (IP adresi yönetimi) veya ağ sürücüsü gibi parametreler tanımlanabilir:

“`yaml
version: ‘3’
services:
web:
image: nginx
networks:
frontend:
aliases:
– nginx-service

networks:
frontend:
driver: bridge
ipam:
config:
– subnet: 192.168.1.0/24
“`

Bu örnekte, `frontend` ağı için bir IP alt ağı tanımlanmıştır. Ayrıca, `web` servisi için bir alias tanımlanarak, bu servisin ağ içindeki çağrılarda daha anlamlı bir isimle ulaşılabileceği belirtilmiştir.

Hizmetler Arası İletişim

Docker Compose ile yapılandırılan ağlar, hizmetler arasında kolay iletişim sağlamak için kullanılır. Servisler, diğerlerinin ismiyle doğrudan erişilebilir. Örneğin, `web` servisi, `database` servisine `database` adıyla ulaşabilir:

“`yaml
version: ‘3’
services:
web:
image: nginx
networks:
– frontend
database:
image: postgres
networks:
– backend

networks:
frontend:
backend:
“`

Bu yapılandırma sayesinde, `web` servisi kendi içinde `database:5432` gibi bir bağlantı kullanarak veritabanına erişebilir.

Ağların Silinmesi ve Yönetimi

Docker Compose, tanımlanan ağların silinmesi ve yönetimi konusunda da kullanışlıdır. `docker-compose down` komutu ile tanımlı olan tüm ağlar ile birlikte servisler durdurulabilir ve silinebilir. Temel komutlar aşağıdaki gibi özetlenebilir:

– `docker-compose up`: Servisleri başlatır, var olan ağları kullanır veya yeni ağlar oluşturur.
– `docker-compose down`: Servisleri durdurur ve ilgili ağları siler.

Sonuç

Docker Compose ağ yönetimi, hizmetlerin birbiriyle etkileşimde bulunmasını sağlamanın yanı sıra, uygulamanın sağlık durumunu izlemek ve izole edilmiş ortamlar oluşturmak için de önemlidir. Ağ yapılandırmaları, uygulama mimarisi doğrultusunda özelleştirilebilir ve yönetilebilir. Bu, modern uygulama geliştirme pratiklerinin verimli bir şekilde yürütülmesini sağlar. Docker Compose, doğru ağ yapılandırmalarıyla daha güçlü, ölçeklenebilir ve yönetilebilir uygulamalar sunar.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR