‫ข้อกำหนดสำหรับการบรรยายนี้คือคุณเข้าใจว่ารูปภาพคืออะไรและคุณได้ทำงานกับคอนเทนเนอร์มาบ้างแล้ว
‫ในการบรรยายครั้งนี้เราจะทัวร์ชมรอบ ๆ Docker Hub
‫และทำความรู้จักกับคุณสมบัติพื้นฐานบางอย่างของมัน
‫จากนั้นเราจะพูดคุยเกี่ยวกับความแตกต่างระหว่างภาพที่เป็นทางการและอาจเป็นภาพที่ดีและวิธีการบอกความแตกต่างระหว่างภาพลักษณ์ที่ดีและภาพที่ไม่ดี
‫จากนั้นฉันจะแสดงรอบ ๆ การดาวน์โหลดรูปภาพเล็กน้อยและวิธีที่คุณสามารถดูแท็กต่างๆที่พวกเขาจะใช้และความแตกต่างระหว่างภาพอัลไพน์และตัวเลือกภาพอื่น
‫ๆ
‫คุณควรลงชื่อเข้าใช้ฮับ นักเทียบท่า ดอทคอม
‫เมื่อคุณลงชื่อเข้าใช้ในหน้าแรกเริ่มต้นของคุณคือแดชบอร์ดซึ่งจะแสดงที่เก็บข้อมูลทั้งหมดของคุณสาธารณะและส่วนตัว
‫คุณยังไม่ได้มี แต่คุณสามารถเห็นฉันมีบางอย่างที่นี่
‫พวกเขาทั้งหมดเป็นสาธารณะ
‫ฉันมีหนึ่งส่วนตัว ตอนนี้ไปที่ด้านบนแล้วค้นหา nginx สิ่งที่เราจะได้รับคือผลการค้นหาของ Docker Hub
‫และคุณจะเห็นว่ามีจำนวนมาก ฉันสามารถเลื่อนหน้าและหน้า
‫หนึ่งในความท้าทายคือ Nginx 15,000 รูป
‫นั่นเป็นจำนวนมาก
‫ดังนั้นฉันใช้เพียงหนึ่งหรือสองคน
‫อย่างเป็นทางการที่นี่คุณจะเห็นด้านบนมีดึง 10 ล้านบวก
‫มีคุณสมบัติหลายประการในการหาภาพที่เหมาะสม
‫เช่นเดียวกับคุณคุณจะเริ่มใช้ภาพสำหรับเวิร์กโฟลว์ของคุณที่เกี่ยวข้องกับสิ่งที่คุณทำและคุณจะคุ้นเคยกับภาพเฉพาะ
‫คุณจะชอบคนที่เฉพาะเจาะจง
‫โดยปกติแล้วเรามักจะเริ่มต้นด้วยเจ้าหน้าที่
‫อย่างเป็นทางการจะเป็นคนเดียวที่มีคำว่า 'เป็นทางการ' ด้านล่างจริง
‫นอกจากนี้ยังจะเป็นชื่อเดียวที่ไม่มีชื่อสแลชในตัว
‫เมื่อคุณและฉันสร้างภาพบน Docker Hub เราต้องสร้างมันขึ้นมาด้วยชื่อบัญชีของเราต่อหน้าพวกเขา
‫ดังนั้นเมื่อคุณดูที่อื่น ๆ ทั้งหมดเหล่านี้เป็นชื่อบัญชีทับที่เก็บภาพชื่อ
‫อาจเป็นองค์กรที่ใช้สแลช nginx หรืออะไรทำนองนั้น
‫แต่มีเพียงคนเดียวที่มีชื่อ repo เท่านั้นที่ถือว่าเป็นทางการ ภาพทางการเป็นภาพที่ Docker,
‫Inc.
‫อันที่จริงมีทีมงานของคนที่ช่วยดูแลพวกเขาให้แน่ใจว่าพวกเขามีเอกสารที่มีคุณภาพว่าพวกเขาได้รับการทดสอบอย่างดีและพวกเขาได้รวมกันอย่างเหมาะสมกับ Dockerfiles
‫ที่ปฏิบัติตามกฎการปฏิบัติที่ดี
‫พวกเขามักจะทำงานร่วมกับทีมอย่างเป็นทางการของซอฟต์แวร์ที่ทำจริงเพื่อให้แน่ใจว่ามันกำลังทำทุกสิ่งที่ควรทำ
‫ดังนั้นฉันจะคลิกที่อันนี้
‫ลองดูสองสามสิ่งเกี่ยวกับที่เก็บอย่างเป็นทางการ
‫อย่างที่ฉันพูดไว้ก่อนหน้านี้คุณมักจะใช้เจ้าหน้าที่เพื่อเริ่มต้นจากนั้นในที่สุดคุณอาจพบว่าคุณต้องการเปลี่ยนแปลงเล็กน้อยหรือเพิ่มบางสิ่งลงไป
‫รูปภาพอย่างเป็นทางการเป็นวิธีเริ่มต้นที่ดี
‫หนึ่งในสิ่งที่ดีที่สุดเกี่ยวกับภาพทางการคือเอกสารของพวกเขา
‫พวกเขายอดเยี่ยมมากในการทำเอกสารวิธีทำให้พวกเขาทำงานตัวเลือกใดอาจมีตัวแปรสภาพแวดล้อมอะไรพอร์ตเริ่มต้นเป็นต้น
‫ดังนั้นกลับไปที่ด้านบนคุณจะสังเกตเห็นเวอร์ชันเหล่านี้ รุ่นเป็นคุณสมบัติทั่วไปของที่เก็บอย่างเป็นทางการ
‫คุณไม่จำเป็นต้องมีเวอร์ชั่นในทุก ๆ ภาพ แต่เป็นทางการ
‫เนื่องจากซอฟต์แวร์โอเพนซอร์ซส่วนใหญ่มีรุ่นอย่างเป็นทางการอย่างน้อยสองสามรุ่นที่ได้รับการดูแลและสนับสนุนอย่างเป็นทางการ
‫นั่นคือสิ่งที่เรามีที่นี่ เรามีการฉีด 1 11 สำหรับ Nginx แล้วเรามีสิ่งที่ถือว่าสาขามั่นคงของ Nginx
‫คือ 1 10 เราสามารถเห็นชื่อเล็กน้อยที่นี่พูดได้ว่ามั่นคง
‫jessie Dockerfile
‫เอาล่ะ
‫งั้นมาทำลายมันกัน
‫1 11 9, การฉีด, 1, 1 11 และล่าสุด
‫นั่นคือแท็กทั้งหมด
‫เมื่อเราเริ่มพูดคุยเกี่ยวกับรูปภาพภาพไม่จำเป็นต้องตั้งชื่อ มีการติดแท็กรูปภาพ เวอร์ชันของรูปภาพสามารถมีแท็กได้มากกว่าหนึ่งแท็ก
‫เราจะดำดิ่งลงในนี้สักเล็กน้อยเมื่อเราเริ่มสร้างภาพของเราเองและเราสามารถเล่นกับการติดแท็ก
‫แต่ตอนนี้ถ้าฉันต้องการที่จะดาวน์โหลดภาพที่เฉพาะเจาะจงและคุณจำก่อนหน้านี้ว่าเราได้ดาวน์โหลดมันแล้วดังนั้นถ้าฉันทำภาพนักเทียบท่า ls คุณจะเห็นภาพสามภาพที่เราได้ทำงานด้วย
‫เครื่องของฉัน
‫คุณเห็นแท็กที่ระบุว่าล่าสุด ตอนนี้ล่าสุดเป็นแท็กพิเศษ
‫ไม่จำเป็นต้องรับประกันว่ามันจะเป็นความรับผิดชอบล่าสุดในที่เก็บเสมอ
‫สิ่งที่มักจะหมายถึงคือคุณได้รับผลิตภัณฑ์รุ่นล่าสุด ในที่เก็บข้อมูลอย่างเป็นทางการมีการกำหนดและสอดคล้องกันอย่างมากดังนั้นหากคุณไม่สนใจจริงๆว่ารุ่นที่คุณต้องการคุณต้องการเวอร์ชั่นล่าสุดคุณก็บอกได้ว่านักเทียบท่า
‫pull nginx
‫มันจะดาวน์โหลดล่าสุด คุณจะสังเกตเห็นว่ามันรู้แล้วว่าฉันมีอยู่แล้วมันตรวจสอบ SHA เพื่อให้แน่ใจว่าตรงกับที่มาจาก
‫Docker Hub และพูดว่า
‫"เฮ้ฉันได้ภาพนี้มาแล้ว "ถ้าฉันต้องการดาวน์โหลดอิมเมจ docker รุ่น 1 11 9?
‫กำลังจะไปตรวจสอบและดูสิ่งที่ต้องทำเพื่อดาวน์โหลดภาพนั้นและปรากฎว่าไม่จำเป็นต้องทำอะไรเพราะเป็นรุ่นที่แน่นอน
‫นั่นคือความหมายของเส้นตรงนี้
‫ฉันสามารถอ้างอิงเวอร์ชัน 'หลักล่าสุด' ได้ที่นี่โดยแท็กเหล่านี้
‫เหตุผลก็คือถ้าฉันแค่อยากจะอยู่ในรุ่นล่าสุดของ 1 0 ไม่ว่ามันจะเป็นอะไรสำหรับ Nginx ฉันสามารถระบุ
‫1 ได้
‫ถ้าฉันต้องการที่จะเฉพาะเจาะจงมากขึ้นเมื่อฉันดาวน์โหลดภาพและฉันต้องการรุ่นล่าสุด 1 11 จากนั้นฉันก็พิมพ์ 1 ได้ 11 แบบนี้และปล่อยให้
‫9 และจะดาวน์โหลดหนึ่งอัน
‫แต่ในกรณีของฉันฉันระบุเจาะจงมากที่สุดของ 1 ทั้งหมด 11
‫9 ซึ่งแสดงให้เห็นถึงจุดปล่อยและนั่นก็เพื่อให้แน่ใจว่าฉันได้รับรุ่นที่แน่นอนที่ฉันต้องการ
‫ดังนั้นในซอฟต์แวร์ของคุณแนวปฏิบัติที่ดีที่สุดคือเมื่อคุณกำลังจะผลิตและคุณกำลังทดสอบซอฟต์แวร์ที่คุณจะใช้กับคนอื่นคุณจะต้องระบุรุ่นที่แน่นอน
‫เป็นเรื่องยากที่คุณต้องการให้ซอฟต์แวร์อัปเดตโดยอัตโนมัติ
‫คุณมักจะต้องการควบคุมกระบวนการนั้นด้วยเครื่องมือ DevOps อื่น ๆ
‫แต่เมื่อคุณกำลังพัฒนาหรือทดสอบบางอย่างในเครื่องมันเป็นเรื่องง่ายมากที่จะมีรูปภาพอย่างเป็นทางการที่จะพิมพ์ชื่อและคิดว่าคุณจะได้รับข้อมูลล่าสุด
‫ดังนั้นคุณจะสังเกตเห็นที่นี่มีคนอื่น
‫มี 1 11 9- อัลไพน์และสิ่งเหล่านี้มีชื่อคล้ายกันมากกับคนแรก
‫แต่พวกเขาทั้งหมดมีคำอัลไพน์ในพวกเขา
‫เราจะเข้าไปดูรูปภาพพื้นฐานและดิสทริบิวชันในภายหลัง แต่สำหรับตอนนี้อัลไพน์นั้นเป็นการกระจายลินุกซ์ที่เล็กมาก
‫จริง ๆ แล้วมันมีขนาดน้อยกว่า 5MB
‫รุ่นนี้จะหมายถึงว่ามันมาจากภาพฐานของอัลไพน์ทำให้มันเล็กและเบามากในขณะที่ภาพเริ่มต้นหนึ่งหรือภาพล่าสุดมาจากเจสซี่ซึ่งเป็นการกระจาย Debian
‫มันมีขนาดใหญ่กว่าเล็กน้อยอาจจะมากกว่า 100MB เล็กน้อย
‫ในความเป็นจริงเราสามารถไปที่นี่และดูได้
‫ดังนั้น nginx 182MB ที่นี่
‫หากฉันต้องการดาวน์โหลดอัลไพน์รุ่นที่แน่นอนฉันสามารถพูดได้ 1 11 9-apline
‫และจากนั้นทำอิมเมจ docker และคุณจะเห็นว่าเวอร์ชันอัลไพน์นั้นมีเพียง 54MB
‫และรุ่นล่าสุดคือ 182MB
‫คุณจะสังเกตเห็นว่าสามเวอร์ชันที่ฉันดาวน์โหลดทั้งหมดมีรหัสภาพเหมือนกันเพราะรหัสรูปภาพนั้นใช้รหัสลับ
‫SHA ของแต่ละภาพใน Docker Hub
‫ดังนั้นนี่ไม่ใช่สามสำเนาของภาพ 128MB ที่แตกต่างกัน
‫จริงๆแล้วมันเป็นการหลอกลวงเล็กน้อย
‫มันเป็นเพียงแค่สามแท็กของรหัสภาพเดียวกันที่แน่นอนและมีเพียงการรวมกันที่เพิ่มขึ้น 182MB และเหล่านี้เป็นเพียงสองบรรทัดอื่น
‫ๆ ที่แสดงรหัสภาพเดียวกันกับแท็กที่แตกต่างกันที่เกี่ยวข้อง
‫แต่พอเกี่ยวกับแท็กและเวอร์ชันในตอนนี้
‫ลองตรวจสอบอีกสองสามอย่างใน Docker Hub
‫หากฉันกลับไปที่ nginx ในแถบค้นหาและค้นหา nginx อีกครั้งคุณจะเห็นอีกครั้งว่ามีตัวเลือกอื่น ๆ มากมายและใคร ๆ ก็สามารถทำได้
‫คุณสามารถสร้างรุ่น Nginx
‫ที่กำหนดเองของคุณเองและเนื่องจากเป็นซอฟต์แวร์โอเพ่นซอร์สและเผยแพร่ได้ฟรีคุณจึงสามารถนำกลับมาไว้ที่นี่และนำเสนอต่อสาธารณะ
‫นี่คล้ายกับโมเดลของ GitHub
‫ที่อนุญาตให้คุณจัดเก็บซอฟต์แวร์โอเพนซอร์ซและคุณสามารถแยกซอฟต์แวร์ของคนอื่นและเสนอให้
‫สิ่งเดียวกันไปที่นี่
‫คุณสามารถใช้ภาพของคนอื่นและดาวน์โหลดทำเองอัพโหลดใหม่
‫ดังนั้นถ้าฉันต้องการพิจารณาที่จะไม่ใช้พื้นที่เก็บข้อมูลอย่างเป็นทางการสิ่งที่ฉันมักจะมองหาคือดาวและจำนวนโพลจำนวนหนึ่งเพราะที่เก็บข้อมูลยอดนิยมสำหรับฉันมีแนวโน้มที่จะสร้างความเชื่อมั่น
‫ฉันแนะนำให้คุณดาวน์โหลดและตรวจสอบซอฟต์แวร์ก่อนที่จะใช้เสมอ
‫ดูใน Dockerfile ของพวกเขาและหวังว่าพวกเขาจะมีแหล่งเก็บข้อมูลโอเพ่นซอร์สที่คุณสามารถไปดูว่าพวกเขาสร้างภาพนั้นได้อย่างไร
‫สิ่งบ่งชี้ที่ดีคือเมื่อคุณเห็นสิ่งต่าง ๆ ที่มีห้าล้านดวงดึงดูดพวกมันและดาว 945
‫ดวง; เห็นได้ชัดว่ามีบางสิ่งที่น่าสนใจเกี่ยวกับแพคเกจนี้และทำไมผู้คนจำนวนมากเลือกใช้มันแทนที่จะใช้ภาพอย่างเป็นทางการ
‫คุณสามารถมาที่นี่และดูที่เก็บของพวกเขา
‫คุณสามารถเห็นทางด้านขวาว่าเขาเชื่อมโยงกับที่เก็บ
‫GitHub ของเขาซึ่งซอฟต์แวร์โอเพ่นซอร์สจริงนั้นสร้างภาพนี้ขึ้นมาเพื่อให้คุณสามารถไปตรวจสอบได้ และอาจดาวน์โหลดซอร์สโค้ดจริงนอกภาพ
‫แต่เขาได้ทำบางสิ่งบางอย่างกับภาพ Nginx นี้ซึ่งทำให้ดีกว่าการเริ่มต้นอย่างเป็นทางการ
‫อีกสองสิ่ง ที่แถบด้านบนคุณจะเห็นสำรวจ
‫สำรวจให้ข้อมูลสรุปภาพทางการทั้งหมดและคุณสามารถอ่านผ่านและเชื่อใจฉันว่ามีอะไรมากมาย
‫ในความเป็นจริงในแหล่งข้อมูลสำหรับส่วนนี้คุณจะพบลิงค์ไปยังรายการรูปภาพจริงและภายใต้ 'ไลบรารี่' ซึ่งเป็นที่ที่รูปภาพทางการทั้งหมดและ
‫Dockerfiles ของพวกเขาอาศัยอยู่
‫คุณเห็นว่ามีอะไรมากมาย
‫ในการบรรยายสรุปนี้ในการบรรยายครั้งนี้เราได้พูดคุยเกี่ยวกับ Docker
‫Hub และวิธีการคล้ายกับการเป็นผู้จัดการบรรจุภัณฑ์ที่เหมาะสมสำหรับคอนเทนเนอร์จากนั้นจะรู้จักรูปภาพอย่างเป็นทางการและวิธีการใช้งานได้อย่างไร
‫จากนั้นฉันช่วยคุณหาวิธีกำหนดภาพลักษณ์สาธารณะที่ดีจากภาพที่ไม่ดี
‫เคล็ดลับเล็ก ๆ น้อย ๆ เกี่ยวกับภาพฐานและภาพอัลไพน์มีขนาดเล็กกว่าภาพ Debian ของพวกเขาอย่างไร
‫ดังนั้นเราจะใช้ทักษะเหล่านี้ในส่วนที่เหลือของส่วนนี้