Một trong những điều khiến mọi người khó chịu nhất với Docker image là kích thước của chúng quá lớn. Mặc dù đã cố gắng cấu trúc cẩn thận các Dockerfile và những lệnh cụ thể được sử dụng để quản lý Docker, họ vẫn không thể tránh khỏi kích thước đó. Bên cạnh việc lãng phí dung lượng ổ đĩa, quá trình build mất rất nhiều thời gian, và mọi người phải dành rất nhiều thời gian để tìm kiếm các dependency không cần thiết. Nhiều người đã chấp nhận điều này là không thể tránh khỏi cho đến khi họ thử SlimToolKit.
Ban đầu, một số người khá hoài nghi vì lời hứa của công cụ này nghe có vẻ quá tốt để có thể là sự thật. Nó sẽ thu nhỏ các container của bạn một cách đáng kể nhưng không động đến Dockerfile hoặc làm xáo trộn quy trình làm việc. Tuy nhiên, những gì xảy ra sau khi sử dụng công cụ này là một khám phá đáng kinh ngạc. Bạn sẽ nhận thấy những lợi ích ngay lập tức và học được một số bài học về tối ưu hóa container.
SlimToolKit là gì?
SlimToolKit là một công cụ để đơn giản và tối ưu hóa trải nghiệm phát triển của bạn với container. Nó thu nhỏ các Docker container mà không thay đổi Dockerfile.
Sự phình to của Docker image
Gánh nặng vô hình mà các container của bạn mang theo

Một số người vừa thiết lập một bản cài đặt Linux Mint mới và để thử nghiệm một vài công cụ, họ đã cài đặt Docker và một vài máy chủ. Chỉ trong vòng hai ngày, sau khi kiểm tra kích thước container của mình, họ đã bị sốc khi thấy chúng lớn đến mức nào đối với một bài kiểm tra đơn giản. Nextcloud chiếm 1,46GB, và media server cục bộ, Jellyfin, chiếm 1,55GB. Ngay cả Nginx, vốn cực kỳ nhẹ, cũng chiếm 161MB dung lượng. Điều này là không thể tránh khỏi do image cơ sở và các công cụ phát triển, shell và cache còn sót lại.
Mẹo: Giao diện người dùng terminal như Lazydocker có thể cung cấp khả năng hiển thị thông tin về các Docker container, service, nhật ký và tài nguyên.
Tuy nhiên, sau khi chạy lệnh docker history, rõ ràng vấn đề không phải là các Dockerfile. Các lớp không cần thiết trong quá trình chạy đã làm phình to image. Chúng bao gồm các thư viện và gói được cài đặt chỉ trong trường hợp chúng cần thiết. Lần đầu tiên, nhiều người nhận ra kích thước container khó nắm bắt đến mức nào. Bạn không thể cho rằng bất kỳ image nào là gọn nhẹ mà không kiểm tra nội dung của nó trước.
Rõ ràng là tại sao SlimToolKit có thể giải quyết vấn đề. Nó có thể kiểm tra và phân tích các container một cách động, quan sát những gì chúng sử dụng và những gì container không sử dụng.
Khám phá SlimToolKit
Cách thức hoạt động và những gì nó có thể làm

Trước đây, để tối ưu hóa các container, mọi người đã thử những bản build nhiều giai đoạn, dọn dẹp gói và các script tùy chỉnh; tất cả đều quá dễ bị lỗi. SlimToolKit thì khác. Nó đã khắc phục vấn đề bằng cách theo dõi container trong khi nó đang chạy, theo dõi các file mà nó sử dụng hoặc truy cập và build một image chỉ bao gồm những file đó.
Nó cũng rất minh bạch. Lần đầu tiên chạy lệnh slim build, CLI tạm dừng ở một số điểm nhất định, sau đó nhắc người dùng nhập dữ liệu mới. Mọi thứ nó phân tích, bao gồm cả thư viện và các file tạm thời, đều rõ ràng để quan sát. Đây là một cách tiếp cận cho phép bạn kiểm soát và khác với những công cụ tối ưu hóa khác.
Nó đã loại bỏ các shell, file nhị phân và gói không được sử dụng. Điều này không chỉ giảm kích thước image mà còn cải thiện bảo mật bằng cách giảm bề mặt tấn công.
Cài đặt và chạy SlimToolKit trên Linux
Việc cài đặt SlimToolKit khá đơn giản. Đầu tiên, bạn cần xác minh rằng Docker đã được cài đặt và đang chạy, sau đó tải xuống image SlimToolKit. Bạn có thể làm theo các bước sau:
1. Chạy lệnh dưới đây để kiểm tra xem bạn đã cài đặt Docker chưa; bạn sẽ nhận được kết quả tương tự như Docker version 24.0.0, build xyz.
docker --version2. Nếu Docker chưa chạy, bạn có thể chạy các lệnh dưới đây để khởi động nó:
sudo systemctl start docker
sudo systemctl enable docker3. Tải Docker image chính thức cho SlimToolKit bằng cách chạy lệnh này:
docker pull dslim/slimSlimToolKit chạy bên trong một container, vì vậy không cần cài đặt gì thêm. Lần thử nghiệm đầu tiên là chạy SlimToolKit trên container Nginx, có dung lượng khoảng 161MB. Để bắt đầu quá trình, hãy chạy lệnh sau:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim build --target nginx:latest --tag nginx-slim:latestTrong suốt quá trình, bạn có thể thấy SlimToolKit kiểm tra image. Tại một thời điểm, nó đã tạo ra một container tạm thời và cũng dò tìm các HTTP endpoint. Cuối cùng, kết quả ghi nhận mức giảm 9,58 lần, từ 161MB xuống còn 16,8MB. Điều này giúp chúng ta tự tin tiếp tục thu nhỏ các container khác, và kết quả cũng ấn tượng không kém: Netdata giảm từ 1,24GB xuống còn 295MB, và Uptime Kuma giảm từ 448MB xuống còn 135MB.
Học IT





Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy