Kaputun altında neler olup bittiğini anlamaya çalışıyorum, ana makineye bağlı olan telden gelen ve Docker kabının içindeki bir uygulamaya yönlendirilen bir ağ paketine.Bir docker kabının kendi TCP/IP yığını var mı?
Klasik bir VM olsaydı, ana makineye gelen bir paketin sanal makine sanal makinesine (VMware, VBox vb.) Sanal makineye ve TCP/IP yığını üzerinden iletileceğini biliyorum. Konuk işletim sisteminin son olarak uygulamaya ulaşması. Docker durumunda
, o kabın içindeki sanal arayüzeth0
sona eren bir
veth
çift bağlı olan, ana makinesinde gelen bir paket
docker0
köprüye konağın ağ ara iletilir biliyoruz . Ama ondan sonra? Tüm Docker kapsayıcılar ana bilgisayar çekirdeğini kullandığından, paketin ana bilgisayar çekirdeğinin TCP/IP yığını tarafından işlendiğini varsaymak doğru mu? Öyleyse nasıl?
ayrıntılı açıklamasını gerçekten okumak isterim (ya da bağlantıyı kurmaktan çekinmeyin). Zaten this sayfasını dikkatlice okudum, ama her şey demek değil.
Cevabınız için şimdiden teşekkür ederiz.
Evet, ana bilgisayar TCP/IP yığını kullanılır. Bağlandığınız sayfayı okuduktan sonra, linux çekirdeği ve docker kaynak kodunu okumaktan çok daha fazlasını eklemek zordur, bunun yerine özel sorularınız var mı? – nos
Yorumunuz için teşekkürler. Örneğin, verilerin, makinenin “ethic0” köprüsünden “eth0” biçimine nasıl iletildiği belli değil: Ben wireshark kullanmayı denedim, ancak sadece "docker0" ve " vethXYZ'; Ayrıca, 'docker0' ve 'eth0' arasında adreslerin değişmesinden bu yana bir NAT olduğunu ve bununla ilgili bir belge bulamadıklarını varsayıyorum. –
Doğru, çoğu, docker tarafından kullanılan NAT kuralları dahil olmak üzere bu belgede açıklanmıştır. – nos