สถาปัตยกรรมนักเทียบท่าและส่วนประกอบสำหรับผู้เริ่มต้น

มาทำความคุ้นเคยกับสถาปัตยกรรม Docker และส่วนประกอบที่สำคัญ.


ฉันถือว่าคุณมีความเข้าใจพื้นฐานของนักเทียบท่า ถ้าไม่ใช่คุณอาจอ้างอิงถึงบทความก่อนหน้า.

ทำความเข้าใจกับนักเทียบท่าสำหรับผู้เริ่มต้น – เทคโนโลยีตู้คอนเทนเนอร์

ฉันเชื่อว่าคุณเข้าใจความสำคัญของนักเทียบท่าใน DevOps ขณะนี้อยู่เบื้องหลังเครื่องมือที่ยอดเยี่ยมนี้จะต้องมีสถาปัตยกรรมที่น่าอัศจรรย์และมีความคิดดี ไม่เป็นเช่นนั้น?

แต่ก่อนที่ฉันจะพูดถึงเรื่องนั้นขอให้ฉันแสดงระบบเสมือนจริงก่อนหน้าและปัจจุบัน.

การจำลองเสมือนแบบดั้งเดิมและแบบใหม่

ก่อนหน้านี้เราเคยสร้างเครื่องเสมือนและแต่ละ VM มีระบบปฏิบัติการที่ใช้พื้นที่มากและทำให้มันหนัก.

ในกรณีของนักเทียบท่าคอนเทนเนอร์คุณมีระบบปฏิบัติการเดียวและใช้ทรัพยากรร่วมกันระหว่างคอนเทนเนอร์ ดังนั้นจึงมีน้ำหนักเบาและรองเท้าในไม่กี่วินาที.

ดั้งเดิมกับใหม่ Gen

สถาปัตยกรรมนักเทียบท่า

ด้านล่างเป็นแผนภาพง่าย ๆ ของสถาปัตยกรรมนักเทียบท่า.

สถาปัตยกรรมนักเทียบท่า

ผมขออธิบายส่วนประกอบของสถาปัตยกรรมนักเทียบท่า.

เครื่องยนต์นักเทียบท่า

มันเป็นส่วนสำคัญของระบบ Docker ทั้งหมด นักเทียบท่า Engine เป็นแอพพลิเคชั่นที่ตามมา สถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์. มันถูกติดตั้งบนเครื่องโฮสต์ มีสามองค์ประกอบใน Docker Engine:

  • เซิร์ฟเวอร์: มันเป็นนักเทียบท่าภูตชื่อ dockerd. มันสามารถสร้างและจัดการภาพนักเทียบท่า ตู้คอนเทนเนอร์เครือข่าย ฯลฯ.
  • ส่วนที่เหลือ API: มันใช้เพื่อสั่งให้ดีมอนภูตจะทำอย่างไร.
  • อินเตอร์เฟสบรรทัดคำสั่ง (CLI): เป็นไคลเอนต์ที่ใช้ป้อนคำสั่งนักเทียบท่า.

ลูกค้า Docker

ผู้ใช้ Docker สามารถโต้ตอบกับ Docker ผ่านไคลเอนต์ เมื่อคำสั่งนักเทียบท่าทำงานลูกค้าจะส่งพวกเขาไปที่ dockerd daemon ซึ่งดำเนินการคำสั่งเหล่านั้น Docker API ใช้งานโดยคำสั่ง Docker นักเทียบท่าไคลเอ็นต์สามารถสื่อสารกับภูตมากกว่าหนึ่งตัว.

นักลงทะเบียน

มันเป็นตำแหน่งที่จัดเก็บภาพนักเทียบท่า มันอาจเป็นรีจิสทรีนักเทียบท่าสาธารณะหรือรีจิสทรีนักเทียบท่าส่วนตัว Docker Hub เป็นสถานที่เริ่มต้นของภาพนักเทียบท่าซึ่งเป็นรีจิสตรีสาธารณะของร้านค้า คุณยังสามารถสร้างและเรียกใช้รีจิสทรีส่วนตัวของคุณเอง.

เมื่อคุณเรียกใช้คำสั่ง puller หรือ docker run คำสั่งรูปภาพ docker ที่ต้องการจะถูกดึงจากรีจิสตรีที่กำหนดค่าไว้ เมื่อคุณเรียกใช้คำสั่งนักเทียบท่าดันรูปภาพนักเทียบท่าจะถูกเก็บไว้ในรีจิสทรีที่กำหนดค่าไว้.

วัตถุนักเทียบท่า

เมื่อคุณทำงานกับ Docker คุณใช้รูปภาพคอนเทนเนอร์วอลุ่มเครือข่าย ทั้งหมดนี้เป็นวัตถุนักเทียบท่า.

ภาพ

รูปภาพ Docker เป็นเทมเพลตแบบอ่านอย่างเดียวพร้อมคำแนะนำในการสร้างคอนเทนเนอร์นักเทียบท่า สามารถดึงอิมเมจนักเทียบท่าจากฮับ Docker และใช้ตามที่เป็นอยู่หรือคุณสามารถเพิ่มคำแนะนำเพิ่มเติมให้กับอิมเมจพื้นฐานและสร้างอิมเมจ Docker ใหม่และที่แก้ไข คุณสามารถสร้างภาพนักเทียบท่าของคุณเองโดยใช้ dockerfile สร้าง dockerfile พร้อมคำแนะนำทั้งหมดเพื่อสร้างคอนเทนเนอร์และเรียกใช้ มันจะสร้างภาพนักเทียบท่าที่กำหนดเองของคุณ.

ภาพนักเทียบท่ามีเลเยอร์พื้นฐานซึ่งเป็นแบบอ่านอย่างเดียวและสามารถเขียนเลเยอร์ด้านบนได้ เมื่อคุณแก้ไข dockerfile และสร้างใหม่เฉพาะส่วนที่ถูกดัดแปลงเท่านั้นที่จะถูกสร้างใหม่ในชั้นบนสุด.

ตู้คอนเทนเนอร์

หลังจากที่คุณเรียกใช้รูปที่นักเทียบท่ามันสร้างคอนเทนเนอร์นักเทียบท่า แอปพลิเคชันและสภาพแวดล้อมทั้งหมดทำงานในคอนเทนเนอร์นี้ คุณสามารถใช้ Docker API หรือ CLI เพื่อเริ่มหยุดลบคอนเทนเนอร์นักเทียบท่า.

ด้านล่างเป็นคำสั่งตัวอย่างเพื่อเรียกใช้คอนเทนเนอร์ ubuntu docker

นักเทียบท่าวิ่ง -i -t ubuntu / bin / bash

ไดรฟ์

ข้อมูลที่ยังคงอยู่ที่สร้างโดยนักเทียบท่าและใช้โดยภาชนะบรรจุนักเทียบท่าจะถูกเก็บไว้ในเล่ม พวกเขาจัดการโดยนักเทียบท่าผ่าน Docker CLI หรือ Docker API เล่มทำงานบนทั้ง Windows และภาชนะ Linux แทนที่จะเก็บข้อมูลไว้ในเลเยอร์ที่เขียนได้ของคอนเทนเนอร์มันจะเป็นตัวเลือกที่ดีในการใช้ไดรฟ์ข้อมูล เนื้อหาของโวลุ่มอยู่นอกวงจรชีวิตของคอนเทนเนอร์ดังนั้นการใช้โวลุ่มจะไม่เพิ่มขนาดของคอนเทนเนอร์.

คุณสามารถใช้แฟล็ก -v หรือ –mount เพื่อเริ่มต้นคอนเทนเนอร์ด้วยวอลุ่ม ในคำสั่งตัวอย่างนี้คุณใช้ปริมาณ geekvolume กับคอนเทนเนอร์ geekflare.

นักเทียบท่าวิ่ง -d – ชื่อ geekflare -v geekvolume: / app nginx: ล่าสุด

เครือข่าย

ระบบเครือข่ายนักเทียบท่าเป็นเนื้อเรื่องที่ทุกคอนเทนเนอร์สื่อสารกัน มีไดรเวอร์เครือข่ายส่วนใหญ่ห้าตัวใน docker:

  1. สะพาน: เป็นไดรเวอร์เครือข่ายเริ่มต้นสำหรับคอนเทนเนอร์ คุณใช้เครือข่ายนี้เมื่อแอปพลิเคชันของคุณทำงานบนคอนเทนเนอร์แบบสแตนด์อโลนเช่นหลายคอนเทนเนอร์ที่สื่อสารกับโฮสต์นักเทียบท่าเดียวกัน.
  2. เจ้าภาพ: ไดรเวอร์นี้จะลบการแยกเครือข่ายระหว่างคอนเทนเนอร์นักเทียบท่าและโฮสต์นักเทียบท่า มันถูกใช้เมื่อคุณไม่ต้องการแยกเครือข่ายใด ๆ ระหว่างโฮสต์และคอนเทนเนอร์.
  3. วางซ้อน: เครือข่ายนี้เปิดใช้งานบริการ swarm เพื่อสื่อสารระหว่างกัน มันถูกใช้เมื่อคอนเทนเนอร์กำลังทำงานบนโฮสต์ Docker ที่แตกต่างกันหรือเมื่อบริการ Swarm เกิดขึ้นจากแอพพลิเคชั่นหลายตัว.
  4. ไม่มี: ไดรเวอร์นี้ปิดการใช้งานเครือข่ายทั้งหมด.
  5. macvlan: ไดรเวอร์นี้กำหนดที่อยู่ mac ให้กับคอนเทนเนอร์เพื่อทำให้ดูเหมือนอุปกรณ์ทางกายภาพ การรับส่งข้อมูลจะถูกส่งระหว่างคอนเทนเนอร์ผ่านที่อยู่ mac เครือข่ายนี้ใช้เมื่อคุณต้องการให้คอนเทนเนอร์ดูเหมือนอุปกรณ์ฟิสิคัลขณะย้ายข้อมูลการตั้งค่า VM.

ข้อสรุป

ฉันหวังว่าสิ่งนี้จะช่วยให้คุณมีความคิดเกี่ยวกับสถาปัตยกรรม Docker และส่วนประกอบที่จำเป็น ไปที่ Docker เพื่อเรียนรู้เพิ่มเติมและหากสนใจการฝึกอบรมจริง ๆ ลองดูที่นี่ หลักสูตรนักเทียบท่าชำนาญการ.

Tags:

  • นักเทียบท่า

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map