Docker Ağlarına Giriş
Docker üzerinde tek bir konteyner çalıştırmak bir başlangıçtır, ancak gerçek dünya uygulamaları genellikle veritabanları, web sunucuları ve ters vekil sunucular (reverse proxy) gibi birden fazla servisin birbiriyle konuşmasını gerektirir. Docker ağ yönetimi, bu trafiği güvenli ve yönetilebilir bir şekilde kontrol etmenizi sağlar.
Varsayılan Ağ Sürücüleri
Docker kurulumuyla birlikte üç temel ağ sürücüsü gelir:
- bridge: Tek bir ana makine üzerinde izole bir sanal ağ oluşturur. Varsayılan sürücüdür.
- host: Konteyneri doğrudan ana makinenin ağ yığınına bağlar.
- none: Konteynerin ağ erişimini tamamen keser.
Kullanıcı Tanımlı Ağlar
Varsayılan 'bridge' ağı, konteynerlerin birbirine isimle erişmesine izin vermez. Bu nedenle, üretim ortamlarında mutlaka kullanıcı tanımlı ağlar oluşturulmalıdır.
- Ağ Oluşturma:
docker network create app_netkomutu ile özel bir ağ oluşturun. - Konteynerleri Bağlama:
docker run --network app_net ...parametresini kullanarak konteynerleri bu ağa dahil edin.
Bu yapılandırma sayesinde, Docker'ın dahili DNS sunucusu konteyner isimlerini otomatik olarak çözümler.
Port Yayınlama (Publishing Ports)
Bir konteynerin dış dünyaya açılması için port yönlendirme gereklidir. -p host_port:container_port bayrağını kullanın:
docker run -d -p 8080:80 nginxUyarı: Portları sadece gerekli arayüzlere bağlayın. Örneğin 127.0.0.1:8080:80 kullanarak servisi sadece yerel makineye açabilirsiniz.Konteyner İzolasyonu
Farklı ağlar kullanarak servislerinizi izole edebilirsiniz. Örneğin, veritabanını backend_net, web sunucusunu frontend_net üzerinde tutun. Uygulama konteyneriniz her iki ağa da bağlı kalarak bir köprü görevi görebilir.
Sorun Giderme
Eğer konteynerler birbirine ulaşamıyorsa:
- Konteynerlerin aynı ağda olup olmadığını
docker network inspect [ağ_adı]ile kontrol edin. - Servisin
0.0.0.0adresini dinlediğinden emin olun. docker network prunekomutu ile kullanılmayan ağları temizleyerek çakışmaları önleyin.


