บทนำสู่ Docker Networking: เวิร์กโฟลว์, พื้นฐานเกี่ยวกับเครือข่าย, คำสั่งเครือข่าย
เผยแพร่แล้ว: 2020-04-30สารบัญ
บทนำ
ในยุคของเวอร์ชวลไลเซชันนี้ ผู้ดูแลระบบเครือข่ายไม่ได้ทำงานเฉพาะกับส่วนประกอบเครือข่ายแบบเดิม เช่น เราเตอร์ ส่วนประกอบ LAN/ WAN และสวิตช์อีกต่อไป พวกเขาต้องทำงานกับส่วนประกอบเครือข่ายบนแพลตฟอร์มการจำลองเสมือน อุตสาหกรรมไอทีทั้งหมดสนใจแนวคิดเรื่องคอนเทนเนอร์ ซึ่งจำเป็นต้องมีทักษะด้านเครือข่ายที่แข็งแกร่ง
เนื่องจาก Docker เป็นหนึ่งในซอฟต์แวร์คอนเทนเนอร์ที่ใช้มากที่สุด ทักษะด้าน เครือข่ายของ Docker จึงมีความสำคัญต่อการกำหนดค่าคอนเทนเนอร์ ปัจจุบันมีบริษัทมากกว่า 12,000 แห่งใช้คอนเทนเนอร์ Docker ในการขนส่งแอปพลิเคชัน บริษัทเหล่านี้รวมถึง JPMorgan Chase, ThoughtWorks และ Neudesic
ในบทความนี้ เราจะเรียนรู้เกี่ยวกับบทนำสู่ Docker ซึ่งเป็น พื้นฐานของ Docker networking
มาทำความเข้าใจพื้นฐานของ Docker กันก่อน
Docker คืออะไร?
Docker เป็นแพลตฟอร์มบรรจุภัณฑ์ซอฟต์แวร์ที่นำเสนอแนวคิดเรื่องคอนเทนเนอร์ คอนเทนเนอร์ไลเซชั่นเป็นกระบวนการที่แอปพลิเคชันซอฟต์แวร์ถูกแพ็กด้วยการพึ่งพาที่จำเป็นทั้งหมด เช่น ไลบรารี โมดูล และระบบปฏิบัติการ ทำให้ซอฟต์แวร์สามารถเรียกใช้งานได้ง่ายในทุกสภาพแวดล้อม
แพ็คเกจซอฟต์แวร์เหล่านี้เรียกว่า คอนเทนเนอร์ Docker คอนเทนเนอร์เหล่านี้ใช้สำหรับการปรับใช้แอปพลิเคชันสำหรับสภาพแวดล้อมเฉพาะ อาจเป็นคอนเทนเนอร์ Ubuntu, คอนเทนเนอร์ CentOS, คอนเทนเนอร์ Tomcat-Ubuntu หรือ CakePHP

สมมติว่า แอปพลิเคชัน Java ถูกสร้างขึ้นเพื่อดำเนินการในสภาพแวดล้อมที่มีเซิร์ฟเวอร์ Tomcat ติดตั้งอยู่ หลังจากพัฒนาแล้ว แอปพลิเคชันจะถูกส่งไปทดสอบ ผู้ทดสอบต้องตั้งค่าเซิร์ฟเวอร์ Tomcat อีกครั้งเพื่อเรียกใช้แอปพลิเคชัน จากนั้นจะถูกส่งไปยังสภาพแวดล้อมการผลิตซึ่งจะต้องตั้งค่าสภาพแวดล้อมเดียวกันอีกครั้ง
แต่คอนเทนเนอร์ Docker ที่มีสภาพแวดล้อมอยู่แล้วจะช่วยแก้ปัญหาการเริ่มต้นใหม่ตั้งแต่ต้น ดังนั้น นักพัฒนา ผู้ทดสอบ และสมาชิกหน่วยการผลิตจึงสามารถรันแอปพลิเคชันโดยไม่ต้องตั้งค่าเซิร์ฟเวอร์ Tomcat ซ้ำแล้วซ้ำอีก
อ่าน: แนวคิดและหัวข้อโครงการนักเทียบท่า
เวิร์กโฟลว์นักเทียบท่า
แอปพลิเคชันหรือรหัสโครงการเขียนใน ไฟล์ Docker ไฟล์นี้มีข้อกำหนดและการอ้างอิงของแอปพลิเคชัน ไฟล์นี้สร้าง อิมเมจ Docker ที่ใช้ในภายหลังเพื่อรันโค้ดในไฟล์
รูปภาพประกอบด้วยโค้ด ตัวแปรสภาพแวดล้อม ไฟล์ปรับแต่ง เวลารันและไลบรารีที่จำเป็นในการรันแอปพลิเคชัน จากนั้นอิมเมจจะถูกอัปโหลดไปยัง Docker Hub ซึ่งเป็นที่เก็บ GIT ที่ประกอบด้วยอิมเมจ Docker จากที่เก็บเหล่านี้ คุณสามารถดึงและอัปโหลดอิมเมจ Docker ของคุณเองได้
สมาชิกของทีมประกันคุณภาพหรือทีมผลิตของบริษัทดึงภาพเพื่อพัฒนาคอนเทนเนอร์ของพวกเขา เนื่องจากคอนเทนเนอร์เหล่านี้ทั้งหมดอาจถูกแยกออกจากกัน เครือข่าย Docker คือชุดของกฎที่พวกมันโต้ตอบกัน
เมื่อคุณมี ความเข้าใจพื้นฐานเกี่ยวกับ Docker แล้ว เรามาดูรายละเอียดเกี่ยวกับ เครือข่าย Docker กันดีกว่า
อ่านเพิ่มเติม: เงินเดือนนักเทียบท่าในอินเดีย
Docker Networking B asics
เมื่อติดตั้ง Docker ในครั้งแรก จะมีการกำหนดค่าเครือข่าย Docker ที่แตกต่างกันสามเครือข่าย – ไม่มี โฮสต์ และบริดจ์ ไม่มีและโฮสต์เป็นส่วนประกอบที่สำคัญของสแต็ก Docker และไม่สามารถลบออกได้ เครือข่ายบริดจ์สามารถกำหนดค่าได้ เรียกว่าเครือข่าย docker0
สามารถใช้ Docker เพื่อสร้างเครือข่ายได้มากมาย คุณสามารถเพิ่มคอนเทนเนอร์ไปยังเครือข่ายได้มากกว่าหนึ่งเครือข่าย คอนเทนเนอร์ที่เชื่อมต่อกับหลายเครือข่ายสามารถเชื่อมต่อกับคอนเทนเนอร์ของเครือข่ายเหล่านี้
ไดรเวอร์เครือข่ายหลักที่ใช้ใน Docker มีดังนี้:
สะพาน
นี่คือเครือข่ายเริ่มต้นส่วนตัวที่สร้างบนโฮสต์โดย Docker เครือข่ายย่อย IP และเกตเวย์ถูกสร้างขึ้นโดยอัตโนมัติโดยเครือข่ายนี้ คอนเทนเนอร์ที่เป็นของเครือข่ายนี้เป็นส่วนหนึ่งของซับเน็ตเดียวกัน ดังนั้น คอนเทนเนอร์ในเครือข่ายนี้จึงสื่อสารผ่านการกำหนดที่อยู่ IP
ไดรเวอร์เครือข่ายบริดจ์มีประโยชน์มากเมื่อใช้งานแอปพลิเคชันในคอนเทนเนอร์แบบสแตนด์อโลน การติดตั้ง Docker แสดงถึง docker0 โดยค่าเริ่มต้น นักเทียบท่าจะส่งคืนวัตถุ JSON ที่จะอธิบายเครือข่ายบริดจ์หากคุณพิมพ์คำสั่งต่อไปนี้ในคอนโซล:

เครือข่ายนักเทียบท่าตรวจสอบสะพาน
เจ้าภาพ
ไดรเวอร์โฮสต์ใช้สำหรับ คอนเทนเนอร์ แบบ สแตนด์อโลน หากใช้โหมดเครือข่ายโฮสต์สำหรับคอนเทนเนอร์ การแยกระหว่างโฮสต์ Docker และสแต็กเครือข่ายจะถูกลบออก คอนเทนเนอร์ไม่ได้รับที่อยู่ IP ที่จัดสรร
ตัวอย่างเช่น มีการดำเนินการคอนเทนเนอร์ที่เชื่อมโยงกับพอร์ต 80 และใช้เครือข่ายโฮสต์ ในกรณีนี้ แอปพลิเคชันของคอนเทนเนอร์จะพร้อมใช้งานบนพอร์ต 80 บนที่อยู่ IP ของโฮสต์ โหมดเครือข่ายนี้มีประโยชน์เมื่อคอนเทนเนอร์จัดการพอร์ตจำนวนมาก
นอกจากนี้ ไดรเวอร์โฮสต์ยังช่วยให้คุณเรียกใช้คอนเทนเนอร์เว็บหลายรายการบนโฮสต์เดียวเดียวกันได้
ไม่มี
ในเครือข่ายประเภทนี้ คอนเทนเนอร์จะไม่สามารถเข้าถึงเครือข่ายภายนอก และไม่ได้เชื่อมต่อกับคอนเทนเนอร์หรือเครือข่ายอื่น ไม่มีใช้เมื่อคุณต้องการปิดใช้งานเครือข่ายสแต็กบนคอนเทนเนอร์เฉพาะ
ไม่มีอินเทอร์เฟซแบบวนรอบเท่านั้น ซึ่งหมายความว่าไม่มีอินเทอร์เฟซเครือข่ายภายนอก
โอเวอร์เลย์
ใช้สำหรับสร้างเครือข่ายส่วนตัวภายในที่ครอบคลุมทุกโหนดในคลัสเตอร์ Swarm เครือข่าย Docker Swarm คือกลุ่มของเครื่องเสมือนหรือเครื่องจริงที่กำลังเรียกใช้แอปพลิเคชัน Docker ไดรเวอร์เครือข่ายนี้มีความสำคัญใน เครือข่าย Docker เนื่องจากช่วยให้สามารถสื่อสารระหว่างคอนเทนเนอร์แบบสแตนด์อโลนและบริการฝูง
คอนเทนเนอร์แบบสแตนด์อโลนบน Docker daemons ต่างๆ ยังสามารถโต้ตอบกับไดรเวอร์นี้ได้ ดังนั้น คุณจึงไม่ต้องดำเนินการกำหนดเส้นทางระดับ OS สำหรับคอนเทนเนอร์
Macvlan
เครือข่ายนี้ให้คุณกำหนดที่อยู่ MAC ให้กับคอนเทนเนอร์ ทำให้ปรากฏเป็นอุปกรณ์ทางกายภาพ การใช้ที่อยู่นี้ Docker daemon จะกำหนดเส้นทางการรับส่งข้อมูลไปยังเราเตอร์เฉพาะ Docker daemon เป็นเซิร์ฟเวอร์ที่ทำงานบนโฮสต์ OS และโต้ตอบกับมันเพื่อดำเนินกิจกรรมต่างๆ เครือข่าย Macvlan ทำให้การสื่อสารระหว่างคอนเทนเนอร์ง่ายขึ้น
Macvlan เป็นตัวเลือกที่ดีเมื่อต้องจัดการแอปพลิเคชันรุ่นเก่าที่คาดว่าจะเชื่อมต่อกับเครือข่ายทางกายภาพ หากคุณสร้างเครือข่าย Macvlan เครือข่ายอาจอยู่ในสองโหมด – โหมดบริดจ์หรือโหมดลำตัวบริดจ์ 802.1q
ปลั๊กอินเครือข่าย
คุณสามารถใช้ปลั๊กอินเครือข่ายบุคคลที่สามกับ Docker ปลั๊กอินเหล่านี้มีให้ที่ Docker Hub และสามารถรับได้ผ่านผู้จำหน่ายบุคคลที่สาม
คำสั่ง เครือข่ายนักเทียบท่า
คำสั่ง เครือข่ายนักเทียบท่า ทั่วไป มีดังนี้:
รายชื่อเครือข่ายนักเทียบท่า
รหัสนี้จะแสดงรายการเครือข่าย Docker ทั้งหมดบนโฮสต์ –
เครือข่ายนักเทียบท่า ls
การสร้างเครือข่ายนักเทียบท่า
คำสั่งต่อไปนี้จะช่วยคุณในการสร้างเครือข่ายก่อนเปิดคอนเทนเนอร์:
เครือข่ายนักเทียบท่าสร้าง – ชื่อไดรเวอร์ชื่อไดรเวอร์
ในที่ นี้ ชื่อ ไดรเวอร์ คือชื่อที่กำหนดให้กับไดรเวอร์เครือข่าย และ รายการคำสั่งเครือข่าย
คำสั่งนี้ใช้สำหรับแสดงรายการคำสั่งเครือข่ายที่ใช้ได้:
ความช่วยเหลือเกี่ยวกับเครือข่ายนักเทียบท่า
การลบเครือข่าย
คำสั่ง rm สามารถใช้สำหรับการลบเครือข่าย
เครือข่ายนักเทียบท่า rm mynetwork
กำลังเชื่อมต่อกับเครือข่าย Docker
เมื่อคุณสร้างเครือข่าย Docker โดยค่าเริ่มต้น เครือข่ายจะเชื่อมต่อกับเครือข่ายบริดจ์ คำสั่งต่อไปนี้สามารถใช้สำหรับการเชื่อมต่อกับเครือข่ายอื่นเมื่อคุณเรียกใช้คอนเทนเนอร์:
คอนเทนเนอร์นักเทียบท่า run -it –net=mynetwork nginx
รับพอร์ตคอนเทนเนอร์

คุณสามารถรับพอร์ตของคอนเทนเนอร์ได้โดยใช้คำสั่ง port:
พอร์ตนักเทียบท่า cotainer_name/id
บทสรุป
นักเทียบท่าเป็นส่วนสำคัญของการพัฒนาซอฟต์แวร์ในปัจจุบัน เนื่องจากมีบริษัทจำนวนมากขึ้นเรื่อยๆ ที่มุ่งไปสู่การคอนเทนเนอร์ เครือข่ายจึงมีความสำคัญสำหรับการแยกคอนเทนเนอร์ ซึ่งช่วยให้สามารถพัฒนาเว็บแอปพลิเคชันที่ทำงานร่วมกันได้อย่างปลอดภัย เครือข่ายเหล่านี้ช่วยในการสื่อสารระหว่างคอนเทนเนอร์ได้ดีขึ้น
Docker ช่วยบริษัทหลายแห่งปรับปรุงเวลาการปรับใช้และลดต้นทุนที่เกี่ยวข้อง ดังนั้น หากคุณเป็นมือใหม่ บทความนี้จะมีประโยชน์สำหรับการสรุปเกี่ยวกับพื้นฐานของ เครือข่าย นัก เทียบท่า
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการพัฒนาฟูลสแตก ให้ดูประกาศนียบัตร PG ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์แบบครบวงจร ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมอย่างเข้มงวดมากกว่า 500 ชั่วโมง โครงการและการมอบหมายมากกว่า 9 รายการ IIIT -B สถานะศิษย์เก่า โครงการหลักที่นำไปปฏิบัติได้จริง และความช่วยเหลือด้านงานกับบริษัทชั้นนำ