ความแตกต่างระหว่าง Dockerfile และ Docker Compose คืออะไร

Khwam Taek Tang Rahwang Dockerfile Laea Docker Compose Khux Xari



แพลตฟอร์ม Docker ทำงานร่วมกับส่วนประกอบและเครื่องมือต่างๆ สำหรับสร้าง แชร์ และปรับใช้แอปพลิเคชันและโครงการ แพลตฟอร์ม Docker นำเสนอซอฟต์แวร์ในแพ็คเกจปฏิบัติการขนาดเล็กที่เรียกว่าคอนเทนเนอร์ คอนเทนเนอร์เหล่านี้สร้างและจัดการผ่านคำสั่งไฟล์ Docker และเครื่องมือเขียน Docker

บทความนี้จะแสดงให้เห็น:

ความแตกต่างระหว่าง Dockerfile และ Docker Compose

Dockerfile และ Docker Compose ใช้เพื่อคอนเทนเนอร์แอปพลิเคชันและโครงการ ความแตกต่างที่สำคัญระหว่างสององค์ประกอบนี้คือ “ ไฟล์นักเทียบท่า ” เป็นไฟล์คำแนะนำที่ใช้เพื่อระบุเทมเพลตคอนเทนเนอร์ Docker ในรูปแบบของสแน็ปช็อตหรือรูปภาพ อย่างไรก็ตาม Docker Composite เป็นเครื่องมือที่ใช้ใน Docker เพื่อเริ่มการทำงานของไมโครเซอร์วิสและแอพพลิเคชั่นหลายคอนเทนเนอร์







ในการเขียน Docker บริการและแอปพลิเคชันหลายคอนเทนเนอร์ได้รับการกำหนดค่าผ่าน ' นักเทียบท่า-compose.yml ” และรวม Dockerfile เพื่อระบุบริบทการสร้างสำหรับคอนเทนเนอร์



จะสร้างและใช้ Dockerfile ได้อย่างไร?

หากต้องการสร้างและใช้ Dockerfile ในการสร้างสแน็ปช็อตสำหรับคอนเทนเนอร์ ก่อนอื่นให้สร้าง Dockerfile และรวมคำแนะนำที่จำเป็น เช่น อิมเมจพื้นฐาน ไฟล์ต้นฉบับและพาธ ไฟล์เรียกทำงาน พอร์ต และไดรฟ์ข้อมูล สำหรับการนำไปใช้ ให้ดูที่ขั้นตอนที่ให้ไว้



ขั้นตอนที่ 1: สร้างไฟล์โปรแกรม

ขั้นแรก สร้างไฟล์โปรแกรมชื่อ “ index.html ” และเพิ่มรหัสต่อไปนี้ลงในไฟล์:





< html >

< ศีรษะ >

< สไตล์ >

ร่างกาย{

สีพื้นหลัง: สีดำ;

}

h1{

สี: อะความารีน;

รูปแบบตัวอักษร: ตัวเอียง;

}

< / สไตล์ >

< / ศีรษะ >

< ร่างกาย >

< h1 > สวัสดี! ยินดีต้อนรับสู่การสอน Linuxhint < / h1 >

< / ร่างกาย >

< / html >

ขั้นตอนที่ 2: สร้าง Dockerfile

ถัดไป สร้างไฟล์อื่นชื่อ “ ไฟล์นักเทียบท่า ” ที่จะบรรจุ “ index.html ' โปรแกรม. เพื่อจุดประสงค์นี้ ให้ระบุคำสั่งต่อไปนี้:

  • จาก ” กำหนดอิมเมจฐานของคอนเทนเนอร์
  • สำเนา ” คัดลอกหรือเพิ่มไฟล์ต้นฉบับไปยังเส้นทางของคอนเทนเนอร์
  • จุดเริ่มต้น ” กำหนดไฟล์เรียกทำงานสำหรับคอนเทนเนอร์:
จาก nginx: ล่าสุด

คัดลอก index.html / ยูเอสอาร์ / แบ่งปัน / จิงซ์ / html / index.html

จุดเริ่มต้น [ 'นิงซ์' , '-ก' , 'ภูตปิด' ]

ขั้นตอนที่ 3: สร้าง Snapshot/อิมเมจคอนเทนเนอร์

ในขั้นตอนถัดไป สร้างสแนปชอตหรือรูปภาพของคอนเทนเนอร์โดยใช้ ' นักเทียบท่า build -t ' สั่งการ. ชื่อของอิมเมจคอนเทนเนอร์ถูกกำหนดผ่าน ' -t ' ตัวเลือก:



สร้างนักเทียบท่า -t html-รูปภาพ

ขั้นตอนที่ 4: เรียกใช้คอนเทนเนอร์

สร้างและเริ่มคอนเทนเนอร์ผ่านสแน็ปช็อตที่สร้างขึ้นใหม่โดยใช้ ' เรียกใช้นักเทียบท่า ' สั่งการ. ที่นี่, ' -หน้า ” ระบุพอร์ตที่เปิดเผยของคอนเทนเนอร์:

เรียกใช้นักเทียบท่า -หน้า 80 : 80 html-ภาพ

สำหรับการตรวจสอบ ให้ตรวจสอบพอร์ตที่กำหนดของโฮสต์ภายในเครื่องและตรวจสอบว่าคอนเทนเนอร์กำลังดำเนินการอยู่หรือไม่:

จะสร้างและใช้เขียนไฟล์ได้อย่างไร?

ในการกำหนดค่าคอนเทนเนอร์หรือไมโครเซอร์วิสหลายรายการในการเขียน Docker ก่อนอื่นให้สร้าง ' นักเทียบท่า-compose.yml ” และกำหนดค่าคำสั่งลงในไฟล์ สำหรับภาพประกอบ ให้ทำตามคำแนะนำที่ให้ไว้

ขั้นตอนที่ 1: สร้างไฟล์เขียน

ขั้นแรก ให้กำหนดค่าแอปพลิเคชันในคอนเทนเนอร์หรือไมโครเซอร์วิสอื่นๆ โดยระบุคำแนะนำที่จำเป็นในไฟล์ ตัวอย่างเช่น เราได้กำหนดค่า “ index.html ” โปรแกรมโดยกำหนดค่าคำสั่งต่อไปนี้:

  • บริการ ” คีย์ระบุบริการในไฟล์เขียน ตัวอย่างเช่น เราได้กำหนดค่า “ เว็บ ' และ ' เว็บ1 ” บริการเรียกใช้โปรแกรม HTML
  • สร้าง ” คีย์ใช้เพื่อระบุบริบทการสร้างสำหรับคอนเทนเนอร์ เพื่อจุดประสงค์นี้ คำสั่ง Dockerfile จะถูกใช้โดย “ เว็บ ' บริการ.
  • พอร์ต ” คีย์กำหนดพอร์ตที่เปิดเผยของคอนเทนเนอร์
  • ภาพ ปุ่ม ” ใช้เพื่อระบุอิมเมจพื้นฐานสำหรับบริการ:
รุ่น: '3'
บริการ:
เว็บ:
สร้าง: .
พอร์ต:
- 80 : 80
เว็บ 1:
ภาพ: html-ภาพ
พอร์ต:
- 80

ขั้นตอนที่ 2: เริ่มคอนเทนเนอร์

จุดไฟบริการในคอนเทนเนอร์โดยใช้ “ นักเทียบท่า-เขียนขึ้น ' สั่งการ. “ -d ตัวเลือก ” ใช้เพื่อดำเนินการบริการในโหมดเดี่ยว:

นักเทียบท่า-เขียนขึ้น -d

สำหรับการยืนยัน โปรดไปที่โฮสต์ในพื้นที่และตรวจสอบว่าบริการกำลังดำเนินการอยู่หรือไม่:

นี่คือทั้งหมดที่เกี่ยวกับความแตกต่างระหว่างการเขียน Dockerfile และ Docker

บทสรุป

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