เครื่องมือสำรวจอิมเมจ Docker และเนื้อหาเลเยอร์ 'Dive'
(github.com/wagoodman)เครื่องมือสำรวจอิมเมจ Docker dive
- วิเคราะห์อิมเมจ Docker: สามารถวิเคราะห์อิมเมจ Docker ได้โดยใช้คำสั่ง
diveพร้อมแท็ก/ID/ไดเจสต์ของอิมเมจ - ใช้คำสั่ง Docker ได้โดยตรง: สามารถตั้งค่า
aliasเพื่อใช้diveเป็นคำสั่ง Docker ได้โดยตรง - การบิลด์บน Macbook: บน Macbook ที่รองรับเฉพาะ Docker container engine สามารถใช้
diveเพื่อบิลด์และวิเคราะห์อิมเมจได้ - ผสานเข้ากับ CI pipeline: ตั้งค่าตัวแปรสภาพแวดล้อม
CI=trueเพื่อวิเคราะห์อิมเมจโดยไม่มี UI และลดการใช้พื้นที่อย่างสิ้นเปลืองให้เหลือน้อยที่สุด
ความสามารถพื้นฐาน
- แสดงเนื้อหาอิมเมจ Docker แยกตามเลเยอร์: สามารถดูเนื้อหาของเลเยอร์ที่เลือกและเนื้อหาที่รวมกับเลเยอร์ก่อนหน้าได้ทางด้านขวา
- แสดงสิ่งที่เปลี่ยนแปลงในแต่ละเลเยอร์: แสดงไฟล์ที่มีการเปลี่ยนแปลง แก้ไข เพิ่ม หรือลบใน file tree
- ประเมิน "ประสิทธิภาพของอิมเมจ": ประเมินปริมาณพื้นที่สูญเปล่าที่รวมอยู่ในอิมเมจ พร้อมแสดงคะแนนประสิทธิภาพและพื้นที่ไฟล์ที่สูญเปล่า
- รอบการบิลด์/วิเคราะห์ที่รวดเร็ว: สามารถบิลด์อิมเมจ Docker แล้ววิเคราะห์ได้ทันทีด้วยคำสั่ง
dive build -t some-tag . - รองรับแหล่งที่มาของอิมเมจและ container engine ที่หลากหลาย: สามารถเลือกแหล่งที่มาที่จะดึง container image ได้ด้วยออปชัน
--source
วิธีติดตั้ง
- Ubuntu/Debian: ติดตั้ง
diveด้วยcurlและapt - RHEL/Centos: ติดตั้ง
diveด้วยcurlและrpm - Arch Linux: ติดตั้งผ่าน
pacman - Mac: ใช้ Homebrew หรือ MacPorts หรือติดตั้ง Darwin build จากหน้า releases
- Windows: ดาวน์โหลดรีลีสล่าสุด
- Go tools: ต้องใช้ Go เวอร์ชัน 1.10 ขึ้นไป และติดตั้งด้วย
go get - Nix/NixOS: ใช้
nix-envเพื่อติดตั้ง - Docker: ดึงอิมเมจด้วย
docker pullแล้วรันโดยรวมไฟล์ Docker socket เข้าไปด้วย
การผสานกับ CI
- ตั้งค่าตัวแปรสภาพแวดล้อม
CI=true: วิเคราะห์อิมเมจ Docker โดยไม่มี UI และแสดงผลผ่าน/ไม่ผ่านด้วย return code - ตั้งกฎผ่านไฟล์
.dive-ci: สามารถกำหนดเกณฑ์ผ่าน/ไม่ผ่านตามประสิทธิภาพ ปริมาณพื้นที่สูญเปล่า และสัดส่วนของพื้นที่สูญเปล่าได้
การกำหนดปุ่มลัด
- สามารถควบคุมมุมมองเลเยอร์และ file tree ภายใน UI ได้ผ่านปุ่มลัดหลากหลายแบบ
การตั้งค่า UI
- สามารถปรับแต่งตัวเลือกต่างๆ ผ่านไฟล์ตั้งค่าเพื่อเปลี่ยนพฤติกรรมของ
diveได้
ความคิดเห็นของ GN⁺
- ความสำคัญ:
diveเป็นเครื่องมือที่มีประโยชน์มากสำหรับการปรับขนาดอิมเมจ Docker ให้เหมาะสมและลดความสูญเปล่า ซึ่งช่วยลดต้นทุนโครงสร้างพื้นฐานคลาวด์และสนับสนุนการจัดการทรัพยากรอย่างมีประสิทธิภาพ - ความน่าสนใจ: ความสามารถในการวิเคราะห์แต่ละเลเยอร์ของอิมเมจ Docker อย่างละเอียดและตรวจสอบการเปลี่ยนแปลงแบบมองเห็นได้ เป็นฟีเจอร์ที่น่าสนใจมากสำหรับนักพัฒนาและผู้ดูแลระบบ
- ประโยชน์ใช้งาน: การผสาน
diveเข้ากับ CI/CD pipeline ช่วยให้สามารถวิเคราะห์อิมเมจแบบอัตโนมัติ เพื่อยกระดับการควบคุมคุณภาพอย่างต่อเนื่องและเพิ่มประสิทธิภาพได้
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
Crane และไลบรารี go-containerregistry
ความมีประโยชน์ของ Dive
คุณสมบัติที่ซ่อนอยู่ของ Dive
คำถามว่าทำไมถึงใช้ GoLang
ความใช้งานได้จริงของ Dive
เครื่องมือ container-diff ของ Google
เครื่องมือ TUI บนเทอร์มินัลดี ๆ ตัวอื่น
เหตุผลที่ Docker ใช้ tar archive
ผลลัพธ์อันน่าทึ่งของ Dive