บางครั้ง ผู้ใช้ทำการเปลี่ยนแปลงการตั้งค่าคอนเทนเนอร์และการกำหนดค่า แต่การเปลี่ยนแปลงเหล่านี้ไม่ได้ถูกคอมมิตในอิมเมจ Docker หากต้องการบันทึกการเปลี่ยนแปลงคอนเทนเนอร์ในรูปภาพหรือสร้างการสำรองข้อมูลคอนเทนเนอร์ ผู้ใช้จะต้องสร้างอิมเมจใหม่จากคอนเทนเนอร์ เพื่อจุดประสงค์เฉพาะนั้น “ นักเทียบท่ากระทำ ” สามารถใช้คำสั่งได้
คู่มือนี้จะสาธิต:
- คำสั่ง “docker commit” คืออะไร?
- จะสร้างอิมเมจจากคอนเทนเนอร์ Docker ได้อย่างไร
- จะกำหนดผู้เขียนภาพได้อย่างไร?
- วิธีการตั้งค่าข้อความยืนยันของรูปภาพ
- บทสรุป
คำสั่ง “docker commit” คืออะไร?
“ นักเทียบท่ากระทำ ” เป็นหนึ่งในยูทิลิตี้บรรทัดคำสั่งของ Docker ที่ใช้ในการคอมมิตการเปลี่ยนแปลงและการตั้งค่าคอนเทนเนอร์ลงในอิมเมจ Docker นอกจากนี้ยังใช้เพื่อสร้างการสำรองข้อมูลคอนเทนเนอร์เมื่อผู้ใช้จำเป็นต้องแยกส่วน Docker ออกโดยการถอดคอนเทนเนอร์ Docker ออก อย่างไรก็ตาม คำสั่ง docker commit จะรวมเฉพาะไฟล์คอนเทนเนอร์และการเปลี่ยนแปลงการกำหนดค่าในอิมเมจ Docker เท่านั้น โดยจะไม่บันทึกข้อมูลของไดรฟ์ข้อมูลที่ติดตั้งกับคอนเทนเนอร์
ไวยากรณ์
นักเทียบท่ากระทำ < ตัวเลือก > < ชื่อคอนเทนเนอร์ / รหัสคอนเทนเนอร์ > < รูปภาพ-ชื่อ >
ตัวเลือก
ตัวเลือกต่อไปนี้ใช้กับ ' นักเทียบท่ากระทำ ” เพื่อสร้างรูปภาพจากคอนเทนเนอร์ด้วยวิธีต่างๆ:
< แข็งแกร่ง > ตัวเลือก แข็งแกร่ง > ทีดี >< ทีดี >< แข็งแกร่ง > คำอธิบาย แข็งแกร่ง > ทีดี >
ตร >
< ตร >
< ทีดี >< แข็งแกร่ง > -ก, --ผู้เขียน แข็งแกร่ง > ทีดี >
< ทีดี > ใช้เพื่อระบุชื่อผู้เขียนที่ทำการเปลี่ยนแปลงคอนเทนเนอร์ ใน รูปภาพ. ทีดี >
ตร >
< ตร >
< ทีดี >< แข็งแกร่ง > -ค, --เปลี่ยน แข็งแกร่ง > ทีดี >
< ทีดี > เพิ่มคำสั่ง Dockerfile เพื่อยืนยันการเปลี่ยนแปลง ใน รูปภาพ ทีดี >
ตร >
< ตร >
< ทีดี >< แข็งแกร่ง > -m, --ข้อความ แข็งแกร่ง > ทีดี >
< ทีดี > เพิ่มข้อความยืนยันหรือความคิดเห็น ในขณะที่ การสร้างภาพจากคอนเทนเนอร์ ทีดี >
ตร >
< ตร >
< ทีดี >< แข็งแกร่ง > -p, --หยุดชั่วคราว แข็งแกร่ง > ทีดี >
< ทีดี > ขณะคอมมิตคอนเทนเนอร์ ตามค่าเริ่มต้น คอนเทนเนอร์จะหยุดหรือหยุดชั่วคราว หากต้องการหยุดคอนเทนเนอร์ไม่ให้หยุดชั่วคราว ' < แข็งแกร่ง > --หยุดชั่วคราว= เท็จ แข็งแกร่ง > ” มีการใช้ตัวเลือก
จะสร้างอิมเมจจากคอนเทนเนอร์ Docker ได้อย่างไร
เมื่อผู้ใช้ทำการเปลี่ยนแปลงในคอนเทนเนอร์ Docker โดยตรงผ่านเชลล์คอนเทนเนอร์หรือไม่โต้ตอบ การเปลี่ยนแปลงเหล่านี้จะไม่แก้ไขสแนปชอตของคอนเทนเนอร์ หากต้องการบันทึกหรือดำเนินการแก้ไข ผู้ใช้สามารถสร้างรูปภาพใหม่จากคอนเทนเนอร์โดยใช้คำสั่ง “ นักเทียบท่ากระทำ ' สั่งการ. นอกจากนี้ยังมีประโยชน์สำหรับการสร้างข้อมูลสำรองของคอนเทนเนอร์ด้วย
หากต้องการสร้างรูปภาพผ่านคอนเทนเนอร์ Docker ให้ทำตามภาพประกอบต่อไปนี้
ขั้นตอนที่ 1: สร้าง Dockerfile
ขั้นแรกให้สร้างไฟล์ใหม่ชื่อ “ Dockerfile ” และอย่าเพิ่มนามสกุลไฟล์ใดๆ ด้วยชื่อไฟล์ หลังจากนั้นให้วางคำสั่งต่อไปนี้ลงใน “Dockerfile”
จาก nginx: ล่าสุดคัดลอกดัชนี.html / เรา / แบ่งปัน / nginx / html / ดัชนี.html
จุดเริ่มต้น [ 'งิงซ์' , '-ก' , 'ปิดภูต;' ]
ที่นี่ “ จาก ” ใช้เพื่อกำหนดอิมเมจฐานคอนเทนเนอร์ “ สำเนา ” คำสั่งคัดลอกไฟล์โปรแกรมไปยังพาธที่ระบุคอนเทนเนอร์ และคำสั่ง “ จุดเริ่มต้น ” คำสั่งตั้งค่าปฏิบัติการเริ่มต้นของคอนเทนเนอร์
ขั้นตอนที่ 2: สร้างไฟล์โปรแกรม
ต่อไปให้สร้างไฟล์อื่นขึ้นมา” ดัชนี.html ” และเพิ่มโค้ด HTML ต่อไปนี้ลงในไฟล์:
< html >< ศีรษะ >
< สไตล์ >
ร่างกาย {
สีพื้นหลัง: RGB ( 9 , 4 , 4 ) ;
}
h1 {
สี:rgb ( 221 , 219 , 226 ) ;
รูปแบบตัวอักษร: ตัวเอียง;
}
สไตล์ >
ศีรษะ >
< ร่างกาย >
< h1 > นี่คือหน้า HTML แรก h1 >
ร่างกาย >
html >
ขั้นตอนที่ 3: สร้างภาพรวมของคอนเทนเนอร์
ตอนนี้สร้างสแน็ปช็อตของคอนเทนเนอร์จาก Dockerfile โดยใช้คำสั่งด้านล่าง ที่นี่ “ -t ตัวเลือก ” ใช้เพื่อตั้งชื่อสแน็ปช็อต:
สร้างนักเทียบท่า -t สาธิต-img
ขั้นตอนที่ 4: เรียกใช้ Snapshot เพื่อเริ่มคอนเทนเนอร์
จากนั้น ให้เริ่มคอนเทนเนอร์โดยเรียกใช้อิมเมจคอนเทนเนอร์ เพื่อจุดประสงค์นี้ ให้ใช้ ' นักเทียบท่ารัน <ชื่อสแนปชอต> ' สั่งการ:
นักเทียบท่าวิ่ง -พี 80 : : 80 --ชื่อ การสาธิตต่อ -d สาธิต-imgในคำสั่งข้างต้น “ -พี ” ตัวเลือกตั้งค่าพอร์ตการเปิดเผยของคอนเทนเนอร์ “ -ชื่อ ” ระบุชื่อคอนเทนเนอร์และ “ -d ตัวเลือก ” รันคอนเทนเนอร์ในโหมดเดี่ยว:
หลังจากดำเนินการคอนเทนเนอร์แล้ว ให้ไปที่ ' http://localhost:80 ” URL และตรวจสอบว่าโปรแกรมที่บรรจุคอนเทนเนอร์สามารถเข้าถึงได้บนพอร์ตที่เปิดเผยหรือไม่:
ผลลัพธ์ข้างต้นแสดงว่าเราได้เริ่มต้นคอนเทนเนอร์สำเร็จแล้ว
ขั้นตอนที่ 5: สร้างไฟล์โปรแกรมใหม่
บางครั้งผู้ใช้อาจจำเป็นต้องเพิ่มฟังก์ชันการทำงานเพิ่มเติมให้กับแอปพลิเคชันที่ทำงานอยู่ เพื่อจุดประสงค์นี้ ผู้ใช้อาจต้องทำการเปลี่ยนแปลงในไฟล์โปรแกรมหรืออาจเพิ่มไฟล์เพิ่มเติมให้กับแอปพลิเคชัน
เพื่อจุดประสงค์นี้ เรามาสร้างไฟล์อื่นชื่อ “ ดัชนี1.html ” และวางรหัสต่อไปนี้ลงในไฟล์:
< html >< ศีรษะ >
< สไตล์ >
ร่างกาย {
สีพื้นหลัง: RGB ( 106 , 103 , 103 ) ;
}
h1 {
สี:rgb ( 221 , 219 , 226 ) ;
รูปแบบตัวอักษร: ตัวเอียง;
}
สไตล์ >
ศีรษะ >
< ร่างกาย >
< h1 > นี่คือหน้า HTML ที่สอง h1 >
ร่างกาย >
html >
ขั้นตอนที่ 6: คัดลอกไฟล์โปรแกรมใหม่ในคอนเทนเนอร์
หากต้องการคัดลอกไฟล์ใหม่ลงในเส้นทางคอนเทนเนอร์ ให้ใช้คำสั่ง “ นักเทียบท่า cp <ชื่อไฟล์>
ขั้นตอนที่ 7: ยอมรับการเปลี่ยนแปลงคอนเทนเนอร์ในอิมเมจใหม่
หลังจากทำการเปลี่ยนแปลงในคอนเทนเนอร์แล้ว ผู้ใช้จะต้องยอมรับการเปลี่ยนแปลงกับอิมเมจ Docker ใหม่ ภาพนี้จะถูกสร้างขึ้นผ่านคอนเทนเนอร์นักเทียบท่า เพื่อจุดประสงค์นี้ ให้รันคำสั่ง “ นักเทียบท่ากระทำ
บันทึก: ทำการเปลี่ยนแปลงในคอนเทนเนอร์ Docker ก่อนสร้างภาพผ่าน “ นักเทียบท่ากระทำ ” คำสั่งไม่ได้บังคับ ผู้ใช้สามารถใช้ 'docker commit' ได้โดยตรงเพื่อสร้างการสำรองข้อมูลของคอนเทนเนอร์โดยการสร้างอิมเมจ
ขั้นตอนที่ 8: การยืนยัน
หากต้องการตรวจสอบว่าอิมเมจถูกสร้างขึ้นหรือไม่ผ่านคอนเทนเนอร์ ให้แสดงรายการอิมเมจ Docker โดยใช้ปุ่ม “ ภาพนักเทียบท่า ' สั่งการ:
ภาพนักเทียบท่าผลลัพธ์ด้านล่างนี้แสดงให้เห็นว่าเราได้สร้าง ' ใหม่-สาธิต-img ' จาก ' การสาธิตต่อ ' คอนเทนเนอร์:
บันทึก: หากต้องการส่งอิมเมจ Docker ไปยังรีจิสตรีฮับ Docker ผู้ใช้ยังสามารถแท็กรูปภาพโดยใช้เครื่องหมาย “ แท็กนักเทียบท่า ' สั่งการ:
แท็กนักเทียบท่า < ชื่อภาพ > < ชื่อพื้นที่เก็บข้อมูล >>< ชื่อภาพ > : : < แท็ก / รุ่น >ขั้นตอนที่ 9: ลบคอนเทนเนอร์เก่า
ตอนนี้ให้นำภาชนะเก่าออก เพื่อจุดประสงค์นี้ ขั้นแรกให้หยุดคอนเทนเนอร์ Docker โดยใช้เครื่องหมาย “ นักเทียบท่าหยุด <ชื่อคอนเทนเนอร์> ' สั่งการ:
นักเทียบท่าหยุดการสาธิตต่อ
หลังจากหยุดภาชนะแล้ว ให้ใช้ “ นักเทียบท่า rm <ชื่อคอนเทนเนอร์/คอนเทนเนอร์-id> ” เพื่อลบออกจาก Docker:
นักเทียบท่า RM การสาธิตต่อ
ขั้นตอนที่ 10: เรียกใช้คอนเทนเนอร์ใหม่จากอิมเมจที่คอมมิตใหม่
ตอนนี้ ให้เริ่มต้นอินสแตนซ์ใหม่หรือคอนเทนเนอร์ Docker โดยใช้อิมเมจที่สร้างขึ้นใหม่ผ่านทาง “ นักเทียบท่าวิ่ง ' สั่งการ:
นักเทียบท่าวิ่ง -พี 80 : : 80 --ชื่อ การสาธิตต่อ -d ใหม่-สาธิต-img
ตอนนี้นำทางไปยัง “ โฮสต์ท้องถิ่น:80 ” และตรวจสอบว่าแอปพลิเคชัน HTML ทำงานอย่างมีประสิทธิภาพหรือไม่:
เพื่อตรวจสอบไฟล์ที่คัดลอกใหม่ที่เป็น “ ดัชนี1.html ” ให้ใช้ “ http://localhost/index1.html ” URL:
ผลลัพธ์ข้างต้นแสดงให้เห็นว่าการเปลี่ยนแปลงที่คอมมิตได้รับการบันทึกเรียบร้อยแล้วใน ' ใหม่-สาธิต-img ” อิมเมจนักเทียบท่าและเราได้เรียกใช้คอนเทนเนอร์ที่แก้ไขอย่างมีประสิทธิภาพ
จะกำหนดผู้เขียนภาพได้อย่างไร?
“ นักเทียบท่ากระทำ ” คำสั่งยังรองรับตัวเลือกต่างๆ ในการเพิ่มข้อมูลเพิ่มเติมพร้อมกับการเปลี่ยนแปลงที่คอมมิต เช่น ผู้สร้างการเปลี่ยนแปลงใหม่ คอมมิตข้อความ และอื่นๆ
หากต้องการระบุผู้สร้างรูปภาพที่จะทำการเปลี่ยนแปลงใหม่ ให้ทำตามขั้นตอนที่กำหนด
ขั้นตอนที่ 1: ตั้งค่าผู้เขียนรูปภาพ
หากต้องการระบุผู้เขียนภาพที่กำลังทำการเปลี่ยนแปลง ให้ใช้ปุ่ม “ -ก ' หรือ ' -ผู้เขียน ” ตัวเลือกพร้อมกับ “ นักเทียบท่ากระทำ ' สั่งการ:
นักเทียบท่ากระทำ -ก rafia สาธิตต่อ new-demo-img
ขั้นตอนที่ 2: ตรวจสอบภาพ
หากต้องการตรวจสอบว่ามีการตั้งค่าผู้สร้างรูปภาพหรือไม่ ให้ตรวจสอบรูปภาพที่สร้างขึ้นใหม่โดยใช้ปุ่ม “ นักเทียบท่าตรวจสอบ <ชื่อรูปภาพ> ' สั่งการ:
นักเทียบท่าตรวจสอบ new-demo-img
ผลลัพธ์แสดงให้เห็นว่าเราได้ตั้งค่าผู้เขียนรูปภาพอย่างมีประสิทธิภาพ:
จะตั้งค่าข้อความยืนยันรูปภาพได้อย่างไร
หากต้องการตั้งค่าข้อความคอมมิตพร้อมกับการเปลี่ยนแปลงคอมมิต ให้ใช้คำสั่ง “ -ม ' ตัวเลือก. สำหรับภาพประกอบ ให้ปฏิบัติตามคำแนะนำด้านล่าง
ขั้นตอนที่ 1: ตั้งค่าข้อความยืนยันรูปภาพ
หากต้องการตั้งค่าข้อความพร้อมกับการเปลี่ยนแปลงที่คอมมิต ให้ใช้ปุ่ม “ นักเทียบท่ากระทำ -m <“ข้อความ”>
ขั้นตอนที่ 2: ตรวจสอบภาพ
หากต้องการตรวจสอบข้อความยืนยัน ให้ตรวจสอบรูปภาพผ่านทาง “ นักเทียบท่าตรวจสอบ <ชื่อรูปภาพ> ' สั่งการ:
นักเทียบท่าตรวจสอบ new-demo-imgภายใต้ ' ความคิดเห็น ” ผู้ใช้สามารถเห็นข้อความยืนยันดังภาพด้านล่าง:
นั่นคือทั้งหมดที่เกี่ยวกับการสร้างอิมเมจ Docker จากคอนเทนเนอร์
บทสรุป
หากต้องการสร้างอิมเมจ Docker จากคอนเทนเนอร์ ขั้นแรกให้ทำการเปลี่ยนแปลงในคอนเทนเนอร์ Docker หลังจากนั้นให้ใช้ “ นักเทียบท่ากระทำ