Công cụ khám phá nội dung image và layer Docker 'Dive'
(github.com/wagoodman)Công cụ khám phá image Docker dive
- Phân tích image Docker: Có thể phân tích image Docker bằng lệnh
divecùng tag/ID/digest của image. - Dùng trực tiếp lệnh Docker: Có thể thiết lập
aliasđể dùngdivetrực tiếp như một lệnh Docker. - Build trên Macbook: Có thể dùng
diveđể build và phân tích image trên Macbook chỉ hỗ trợ Docker container engine. - Tích hợp vào pipeline CI: Có thể phân tích image không cần UI và giảm thiểu lãng phí dung lượng bằng cách đặt biến môi trường
CI=true.
Tính năng cơ bản
- Hiển thị nội dung image Docker theo từng layer: Có thể xem nội dung của layer được chọn và nội dung hợp nhất với các layer trước đó ở phía bên phải.
- Hiển thị nội dung thay đổi ở mỗi layer: Trong cây tệp, hiển thị các tệp đã thay đổi, chỉnh sửa, thêm mới hoặc bị xóa.
- Ước tính "hiệu quả image": Ước tính lượng dung lượng lãng phí trong image, đồng thời cung cấp điểm hiệu quả và dung lượng tệp bị lãng phí.
- Chu kỳ build/phân tích nhanh: Có thể build image Docker rồi phân tích ngay bằng lệnh
dive build -t some-tag .. - Hỗ trợ nhiều nguồn image và container engine: Có thể chọn nơi lấy container image bằng tùy chọn
--source.
Cách cài đặt
- Ubuntu/Debian: Cài
divebằngcurlvàapt. - RHEL/Centos: Cài
divebằngcurlvàrpm. - Arch Linux: Có thể cài qua
pacman. - Mac: Dùng Homebrew hoặc MacPorts, hoặc tải bản build Darwin từ trang phát hành.
- Windows: Tải bản phát hành mới nhất.
- Go tools: Cần Go phiên bản 1.10 trở lên, cài bằng
go get. - Nix/NixOS: Dùng
nix-envđể cài đặt. - Docker: Lấy image bằng
docker pullvà chạy kèm tệp Docker socket.
Tích hợp CI
- Đặt biến môi trường
CI=true: Phân tích image Docker không cần UI và thể hiện trạng thái pass/fail bằng mã trả về. - Thiết lập quy tắc qua tệp
.dive-ci: Có thể đặt tiêu chí pass/fail theo hiệu quả, lượng dung lượng lãng phí và tỷ lệ lãng phí.
Gán phím
- Có thể thao tác các layer và chế độ xem cây tệp trong UI thông qua nhiều gán phím khác nhau.
Cấu hình UI
- Có thể thay đổi hành vi của
divebằng cách tùy biến nhiều tùy chọn thông qua tệp cấu hình.
Ý kiến của GN⁺
- Mức độ quan trọng:
divelà công cụ rất hữu ích để tối ưu kích thước image Docker và giảm lãng phí. Điều này có thể góp phần cắt giảm chi phí hạ tầng đám mây và quản lý tài nguyên hiệu quả hơn. - Điểm thú vị: Khả năng phân tích chi tiết từng layer của image Docker và trực quan hóa các thay đổi là một tính năng rất đáng chú ý đối với nhà phát triển và quản trị viên hệ thống.
- Tính hữu ích: Việc tích hợp
divevào pipeline CI/CD có thể thúc đẩy quản lý chất lượng liên tục và cải thiện hiệu quả thông qua phân tích image tự động.
1 bình luận
Ý kiến trên Hacker News
Crane và thư viện go-containerregistry
Tính hữu ích của Dive
Một đặc điểm ít được biết đến của Dive
Câu hỏi về lý do dùng GoLang
Tính thực dụng của Dive
Công cụ container-diff của Google
Các công cụ terminal TUI tuyệt vời khác
Vì sao Docker dùng tar archive
Hiệu quả ấn tượng của Dive