`docker0` ที่นั่นคืออะไร?

Sep 18 2020

ฉันอ่านเอกสารเกี่ยวกับdockerโหมดเครือข่าย

มีการแสดงมีdocker0และeth1บนโฮสต์

ฉันมีคำถามเกี่ยวกับเรื่องนี้คืออะไรdocker0? มันเป็นอินเทอร์เฟซหรือสะพาน? ถ้าเป็นอินเทอร์เฟซก็ควรมี IP address ที่สื่อสาร172.17.0.2ได้ใช่ไหม?

คำตอบ

1 VonC Sep 18 2020 at 11:32

คุณสามารถดูตัวอย่าง docker0 ที่อธิบายไว้ในบทความนี้ :

สะพาน docker0 เป็นอินเตอร์เฟซเสมือนที่สร้างขึ้นโดยนักเทียบท่าก็สุ่มเลือกที่อยู่และเครือข่ายย่อยจากช่วงส่วนตัวที่กำหนดโดย RFC 1918 docker0ที่ไม่ได้อยู่ในการใช้งานบนเครื่องโฮสต์และกำหนดมัน

คอนเทนเนอร์นักเทียบท่าทั้งหมดจะเชื่อมต่อกับสะพานเทียบท่าเทียบเรือตามค่าเริ่มต้นคอนเทนเนอร์นักเทียบท่าที่เชื่อมต่อกับdocker0สะพานสามารถใช้กฎ NAT ของ iptables ที่นักเทียบท่าสร้างขึ้นเพื่อสื่อสารกับโลกภายนอก

โดยค่าเริ่มต้น Docker จะแนบคอนเทนเนอร์ทั้งหมดเข้ากับสะพาน docker0 ดังนั้นคุณไม่จำเป็นต้องระบุแฟล็กเพิ่มเติมใด ๆ ด้วยคำสั่ง docker run เพื่อเชื่อมต่อคอนเทนเนอร์นักเทียบท่ากับdocker0บริดจ์เว้นแต่DOCKER_OPTSไฟล์คอนฟิกูเรชัน in docker จะระบุอย่างชัดเจนให้ใช้เครือข่ายอื่นที่ไม่ใช่docker0บริดจ์ ในกรณีนี้คุณสามารถใช้–net=bridgeกับคำสั่ง docker run เพื่อเชื่อมต่อคอนเทนเนอร์เข้ากับdocker0บริดจ์

โปรดดู " ความสัมพันธ์ระหว่างdocker0และeth0อะไร "