‫Bu ders için gerekenler, önceki ağ derslerini görmüş olmanız ve Docker ağları için temel kavramları
‫ve bununla birlikte gelen komutları anlamış olmanızdır.
‫Tamam.
‫Bu derste, DNS'i ve özel ağlar ile varsayılan ağlardaki kapsayıcıları nasıl etkilediğini öğrenecek ve bunlarla
‫oynayacaksınız.
‫İyi bir DNS'e sahip
‫olmamızın ne kadar önemli olduğunu hızlıca gözden geçireceğiz çünkü işler çok dinamik olduğu için konteynerlerin
‫içindeki IP adreslerine güvenemezsiniz. DNS ile nasıl başa çıktıkları konusunda varsayılan ve
‫özel ağlar arasındaki farklara bakacağız.
‫Ve sonra varsayılan köprü ağında DNS'i etkinleştirmek için konteyner çalıştırma için --link seçeneğini kontrol
‫edeceğiz.
‫Tüm bu konteynerler, sanal ağlar ve bunların birbirleriyle konuşması için çok
‫önemli olan bir şey daha var; o da isimlendirme. Çünkü sürekli olarak piyasaya sürülen ve kaybolan, hareket
‫eden, genişleyen ve küçülen konteynerlerin dünyasında ve her yerde ortaya çıktığını gördüğümüz
‫bu mikro hizmetlerin tüm harikalığı, artık bir şeyden diğerine konuşmanın yolu olarak IP adreslerine kolayca
‫güvenemeyeceğimizdir. Çünkü IP adreslerinin dakikadan dakikaya aynı
‫olacağını varsayamayız.
‫Konteyner kaybolabilir veya başarısız olabilir ve ardından Docker onu başka bir yere getirir.
‫Bununla uğraşmak için çok dinamik ve çok karmaşık.
‫Bu nedenle, bunun için yerleşik bir çözüm olduğu ve bunun DNS adlandırma olduğu ortaya çıktı. Docker, konteyner adlarını birbirleriyle konuşan
‫konteynerler için bir ana bilgisayar adına eşdeğer olarak kullanır.
‫Hatırlarsanız daha yeni iki konteynır çalıştırmıştık.
‫Nginx'in my_app_net adında yeni bir ağda olduğunu hatırlarsanız.
‫Doğru.
‫Ve üzerinde bir konteyner var. Varsayılan köprü ağı olmayan bu
‫yeni ağı oluşturduğum için, aslında
‫bu sanal ağdaki tüm konteynerler için konteyner adlarını kullanarak bu sanal ağdaki diğer tüm konteynerlerden
‫otomatik DNS çözümlemesi olan özel bir yeni özelliğe sahip oluyor.
‫Bu sanal ağ üzerinde ikinci bir konteyner oluşturacak olursam, IP adresi ne olursa olsun, konteyner
‫adlarıyla birbirlerini bulabilecekler.
‫Öyleyse şunu deneyelim: docker container run name ... ve biz buna benim nginx'im diyeceğiz... ve ağı nginx imajındaki
‫uygulama ağım olarak belirleyeceğiz.
‫Şimdi, bu ağa bakarsak, 2 konteyner görmeliyiz; ve yeni oluşturduğum konteynerden
‫bir docker container exec yaparsam -- oops orada IT'ye de ihtiyacımız
‫var -- Ve yeni nginx'e bir ping yaparsak, DNS çözümlemesinin
‫çalıştığını fark edersiniz. Bu, bir konteynere sahip olmanızı ve konuşmak için içinde bir
‫yapılandırma dosyası ayarlamanız gerektiğini süper kolaylaştırır, belki PHP sunucusunun
‫MySQL arka ucuyla konuşacağını söyleyelim. Ctrl-c tuşuna bastığınızda bunun diğer şekilde de çalıştığını göreceksiniz.
‫Yeni nginx konteynerine atlarsam ve ngnix'ime ping atmaya çalışırsam, çözünürlüğün her iki yönde de çalıştığını görürsünüz.
‫Ve bu, konteynerleri döndürürken büyük bir sorunu çözen şeydir çünkü Docker Swarm sunucularından oluşan bir
‫kümeye sahip olduğunuz bir üretim tasarımında ne kadar süre dayanacaklarını ve bir dakika sonra
‫nerede olabileceklerini tahmin edemezsiniz.
‫Yani yerel makinenizde çok fazla değişmeyebilir, ancak 3 veya 4 konteyneri durdurursanız ve ardından
‫aynı konteynerleri başlatırsanız ve bunları farklı bir sırada başlatırsanız,
‫aynı IP adresine sahip olmayabilirler. Ancak ana bilgisayar adları veya kapsayıcı adları her zaman
‫aynı olacaktır.
‫Bu yüzden onlara güvenebilirsiniz.
‫Şimdi, bir docker ağ listesi yaparsak, varsayılan köprü ağının burada bir dezavantajı olduğunu belirtmeliyim.
‫Varsayılan olarak yerleşik DNS sunucusuna sahip değildir.
‫Böylece --bağlantısını kullanabilirsiniz.
‫Bir konteyner oluşturduğunuzda, bir bağlantı seçeneği olduğunu fark edeceksiniz ve aslında bu varsayılan köprü ağındaki konteynerler
‫arasında manuel bağlantılar belirleyebilirsiniz.
‫Ama gerçekten, uygulamalarınız için yeni bir ağ oluşturmak çok daha kolaydır, böylece her seferinde bunu yapmak
‫zorunda kalmazsınız.
‫Gelecek bölümde Docker Compose hakkında konuştuğumuzda, Compose ile bir uygulamayı her çalıştırdığınızda
‫otomatik olarak yeni sanal ağlar oluşturacağı için bu işlerin nasıl daha da kolaylaştığını göreceksiniz.
‫Böylece konteynerleriniz arasında iletişim kurmak daha da kolaylaşır.
‫Hızlı bir özet olarak, bu derste konteynerlerin birbirleriyle konuşmak için IP adreslerine gerçekten güvenemeyeceklerini ya
‫da güvenmemeleri gerektiğini, çünkü bu adreslere güvenilemeyeceğini anlattık.
‫Ve DNS, aynı ana bilgisayarda ve ana bilgisayarlar arasında konteynerler arasında nasıl iletişim
‫kuracağımız konusunda gerçekten standarttır.
‫Bu yüzden her zaman özel ağlar oluşturmanızı tavsiye ederim çünkü bu şekilde her zaman --link
‫yapmaktan daha kolaydır.
‫Ve sonra size Docker Compose ve tüm bunları, özellikle de ağ oluşturmayı nasıl kolaylaştıracağı
‫hakkında bir tanıtım yaptım.