Tìm kiếm trang web

Toolbx: Quản lý nhiều container phát triển trên Fedora


Phát triển Linux hiện đại đã vượt ra ngoài cách tiếp cận truyền thống là cài đặt mọi thứ trực tiếp trên hệ thống của bạn. Hiện nay, bạn có thể sử dụng các công cụ giúp tạo môi trường phát triển tách biệt mà không phải đối phó với gánh nặng của máy ảo đầy đủ hoặc sự phức tạp của việc quản lý container thủ công.

Đây chính là lúc Fedora Toolbx xuất hiện – một công cụ giúp bạn dễ dàng tạo các môi trường phát triển dưới dạng container trong khi vẫn giữ trải nghiệm mượt mà như làm việc trực tiếp trên hệ thống máy chủ của bạn.

Trong hướng dẫn này, bạn sẽ học cách thiết lập và sử dụng Fedora Toolbx để tạo các môi trường phát triển tách biệt, có thể tái hiện và dễ quản lý. Bạn sẽ khám phá cách Toolbx giúp bạn làm việc trên nhiều dự án với các phụ thuộc xung đột trong khi vẫn giữ cho hệ thống cơ bản của bạn gọn gàng và ngăn nắp.

Hướng dẫn này sẽ đưa bạn qua những kiến thức cơ bản về Toolbx với những giải thích đơn giản và thực tiễn. Trước tiên, bạn sẽ tìm hiểu Toolbx là gì và tại sao bạn cần nó, sau đó bạn tiếp tục cài đặt và thiết lập nó trên hệ thống Fedora của mình. Sau đó, bạn sẽ tạo container phát triển đầu tiên của mình và hiểu cách quản lý nhiều môi trường một cách hiệu quả.

Các phần cuối cùng sẽ cho bạn thấy các quy trình làm việc phổ biến và các phương pháp hay nhất giúp bạn tận dụng tối đa Toolbx trong công việc phát triển hàng ngày của mình.

Lưu ý: Toolbx ban đầu được phát triển cho Fedora và hoạt động tốt nhất trên các hệ thống dựa trên Fedora, mặc dù bạn cũng có thể sử dụng nó trên các bản phân phối Linux hiện đại khác, nhưng hướng dẫn này chủ yếu tập trung vào Fedora.

Hiểu về Toolbx: Điều gì làm nó khác biệt

Trước khi bạn bắt đầu làm việc với Toolbx, điều quan trọng là phải hiểu nó thực sự làm gì và tại sao bạn cần nó trong quy trình phát triển của mình.

Toolbx tạo các môi trường đóng gói bằng Podman, một công cụ quản lý container giống Docker nhưng hoạt động mà không cần daemon.

Điều làm Toolbx nổi bật là cách nó tích hợp chặt chẽ các container này với hệ thống máy chủ của bạn, mang lại trải nghiệm phát triển liền mạch mà không cảm thấy bị hạn chế như các container truyền thống.

Khi bạn làm việc với các container Toolbx, bạn sẽ nhận được một số lợi ích chính giúp công việc phát triển của bạn trở nên dễ dàng hơn:

  • Truy cập Thư mục Home Liền Mạch – Thư mục home của bạn sẽ được tự động gắn vào container, nghĩa là các tệp, cấu hình và khóa SSH của bạn sẽ có sẵn ngay lập tức mà không cần cài đặt thêm.
  • Truy cập Phần cứng Trực tiếp – Đồ họa, âm thanh và các thiết bị khác hoạt động ngay lập tức mà không cần cấu hình đặc biệt hay các thủ tục gắn phức tạp.
  • Tích hợp với máy chủ – Bạn có thể chạy các ứng dụng đồ họa, truy cập mạng và tương tác với hệ thống của mình giống như đang làm việc trực tiếp trên hệ thống máy chủ thay vì bên trong container.

Bạn có thể xem Toolbx như đang tạo ra một “bong bóng” được bảo vệ xung quanh các công cụ và phụ thuộc phát triển của bạn. Bên trong bong bóng này, bạn có thể cài đặt bất kỳ gói, thư viện hoặc công cụ nào mà bạn cần cho một dự án cụ thể mà không ảnh hưởng đến hệ thống chính của mình.

Trong các phần tiếp theo, bạn sẽ học cách cài đặt Toolbx trên hệ thống Fedora của mình và bắt đầu tạo các môi trường phát triển tách biệt này.

Cài đặt Toolbx trên Fedora

Trên Fedora Workstation (phiên bản 28 trở lên), toolbx đã được cài sẵn, và bạn có thể kiểm tra bằng cách chạy lệnh sau.

toolbox --version

Nếu bạn thấy một số phiên bản, bạn đã sẵn sàng, nếu Toolbx chưa được cài đặt, bạn có thể thêm nó bằng:

sudo dnf install toolbox

Cài đặt Toolbx trên Fedora

Đấy là tất cả cho việc cài đặt. Không có tập tin cấu hình phức tạp, không cần thiết lập daemon, không có phụ thuộc bổ sung nào phải lo lắng.

Tạo Container Toolbx Đầu Tiên Của Bạn

Việc tạo một container Toolbx là một quá trình đơn giản mà bạn có thể hoàn thành chỉ với một lệnh duy nhất, lệnh này sẽ tạo một container mặc định dựa trên phiên bản Fedora hiện tại của bạn.

Ví dụ, nếu bạn đang chạy Fedora 41, nó sẽ tự động tạo một container Fedora 41 cho bạn. Lần đầu tiên bạn chạy lệnh này, Toolbx sẽ tải xuống hình ảnh container, điều này mất vài phút tùy thuộc vào tốc độ kết nối internet của bạn.

toolbox create

Tạo Hộp Công Cụ Đầu Tiên Của Bạn

Khi container đã được tạo, bạn có thể vào nó bằng cách chạy lệnh sau:

toolbox enter

Truy cập vào Container Docker của bạn sau khi tạo

Bạn sẽ nhận thấy biểu tượng hộp chứa nhỏ (⬢) xuất hiện trong dòng lệnh, điều này chỉ ra rằng bạn đang ở bên trong hộp chứa Toolbx của mình.

Mặc dù bạn đang làm việc trong môi trường container, bạn sẽ thấy rằng thư mục home của bạn, các tập tin của bạn và hầu hết môi trường hệ thống chính của bạn vẫn có thể truy cập dễ dàng giống như trên hệ thống chính của bạn.

Sử dụng các phiên bản Fedora khác nhau

Đôi khi bạn cần làm việc với một phiên bản Fedora cụ thể, có thể máy chủ sản xuất của bạn chạy phiên bản cũ hơn, hoặc bạn muốn kiểm tra khả năng tương thích với phiên bản mới nhất trước khi nâng cấp hệ thống chính của mình.

Toolbx làm điều này trở nên dễ dàng với cờ --release hoặc -r:

toolbox create --release 39 fedora39-container
toolbox create --release 41 testing-fedora41

Bạn thậm chí có thể sử dụng các container từ các phiên bản Fedora cũ hơn trong khi chạy phiên bản mới hơn trên hệ thống máy chủ của bạn, mang lại cho bạn một cách tiện lợi để duy trì khả năng tương thích với các môi trường khác nhau.

Kiểm tra Môi trường Container của Bạn

Để xác minh rằng bạn thực sự đang ở bên trong container và xem nó khác với hệ thống máy chủ của bạn như thế nào, bạn có thể chạy vài lệnh đơn giản, ví dụ như kiểm tra các gói cài đặt.

dnf list installed | wc -l

Bạn cũng có thể kiểm tra tên máy chủ của container:

hostname

Để xem thư mục làm việc hiện tại của bạn và xác nhận rằng thư mục home của bạn có thể truy cập được:

pwd
ls -la

Bạn sẽ nhận thấy mình đang ở trong thư mục gốc của mình với tất cả các tệp và thư mục quen thuộc hiển thị, ngay cả khi bạn đang ở bên trong một container.

Thực thi lệnh bên trong một container Toolbox đang chạy

Cài đặt phần mềm bên trong container của bạn

Bây giờ bạn đã ở bên trong container, bạn có thể cài đặt các công cụ phát triển mà không ảnh hưởng đến hệ thống chính của bạn. Ví dụ, nếu bạn muốn thiết lập một môi trường phát triển Python:

sudo dnf install python3-pip python3-virtualenv git vim -y

Nếu bạn thoát khỏi container và kiểm tra hệ thống máy chủ của mình, những gói này sẽ không được cài đặt ở đó, chúng chỉ tồn tại trong môi trường Toolbx của bạn.

Thiết lập môi trường Python bên trong container Toolbox

Hãy thử một ví dụ khác với các công cụ phát triển Node.js.

sudo dnf install nodejs npm -y
node --version
npm --version

Các lệnh này cài đặt Node.js và npm, sau đó kiểm tra cài đặt bằng cách xem phiên bản của chúng. Một lần nữa, việc cài đặt này hoàn toàn tách biệt với hệ thống chính của bạn.

Khi bạn hoàn tất công việc trong container của mình, bạn có thể thoát ra bằng cách chỉ cần chạy:

exit

Tạo các Container Đặt Tên cho Các Dự Án Khác Nhau

Trong khi container mặc định hoạt động tốt cho công việc phát triển chung, bạn thường sẽ cần các container riêng biệt cho các dự án hoặc mục đích cụ thể. Việc tạo container có tên giúp bạn tổ chức môi trường phát triển hiệu quả hơn và giữ cho công việc của bạn được tách biệt.

Để tạo các container có tên, bạn chạy lệnh toolbox create tiếp theo là tên bạn muốn đặt cho container của mình:

toolbox create python-dev
toolbox create nodejs-project
toolbox create rust-experiments

Mỗi lệnh này tạo ra một container riêng biệt với môi trường tách biệt của nó. Khi bạn muốn làm việc trên một dự án cụ thể, bạn vào container tương ứng bằng cách cung cấp tên của nó với lệnh enter:

toolbox enter python-dev

Cách tiếp cận này giúp bạn duy trì các môi trường hoàn toàn tách biệt cho các loại công việc phát triển khác nhau. Ví dụ, container Python của bạn có thể chạy Python 3.12 với tất cả các phụ thuộc hiện đại, trong khi container dự án cũ có thể sử dụng Python 3.8 với các thư viện cũ hơn, và không môi trường nào sẽ can thiệp vào môi trường kia hay ảnh hưởng đến hệ thống máy chủ của bạn theo bất kỳ cách nào.

Chạy các Ứng dụng Đồ họa từ Toolbox

Điều làm cho Toolbx thực sự đặc biệt là khả năng chạy các ứng dụng đồ họa một cách mượt mà ngay trong các container của bạn. Không giống như các container truyền thống, vốn đòi hỏi thiết lập và cấu hình X11 phức tạp.

Toolbx xử lý tất cả việc tích hợp hiển thị một cách tự động, khiến bạn cảm giác như đang chạy các ứng dụng trực tiếp trên hệ thống chính của mình.

Để xem cách điều này hoạt động trong thực tế, hãy cài đặt và chạy một trình soạn thảo văn bản đồ họa làm ví dụ.

toolbox enter
sudo dnf install gedit -y

Khi quá trình cài đặt hoàn tất, bạn có thể khởi động trình soạn thảo.

gedit &

Cửa sổ gedit mở trên màn hình của bạn giống như khi bạn khởi chạy nó từ hệ thống chính. Bạn có thể tạo, chỉnh sửa và lưu các tập tin, và mọi thứ hoạt động chính xác như bạn mong đợi.

Ký hiệu <code>(&)</code> ở cuối chạy ứng dụng trong nền, cho phép bạn tiếp tục sử dụng terminal trong khi ứng dụng đồ họa vẫn mở.

Chạy các ứng dụng GUI bên trong các container Toolbx

Quản lý nhiều container Toolbx

Khi bạn tạo nhiều container cho các dự án khác nhau, bạn sẽ cần một cách để theo dõi và quản lý chúng hiệu quả. Toolbx cung cấp nhiều lệnh giúp bạn xem, điều khiển và sắp xếp các môi trường container của mình.

Liệt kê các thùng chứa của bạn

Để xem tất cả các container bạn đã tạo, bạn chạy lệnh danh sách:

toolbox list

Xem Tất Cả Các Hộp Công Cụ Trên Hệ Thống Của Bạn

Từ kết quả này, bạn có thể thấy những container nào đang chạy và những container nào đã kết thúc.

Kiểm tra chi tiết container

Nếu bạn muốn biết thông tin chi tiết hơn về một container cụ thể, bạn có thể sử dụng trực tiếp Podman vì các container của Toolbx là các container Podman thông thường:

podman ps -a

Bạn cũng có thể kiểm tra một container cụ thể để xem cấu hình đầy đủ của nó:

podman inspect python-dev

Lấy Thông Tin Chi Tiết Về Container Toolbx Sử Dụng Podman

Dừng và Khởi động các Container đang chạy

Khi bạn hoàn thành công việc trong một container và muốn giải phóng tài nguyên hệ thống, bạn có thể dừng nó một cách rõ ràng.

podman stop python-dev

Bạn có thể xác nhận rằng container đã dừng bằng cách chạy lại lệnh danh sách:

toolbox list

Bạn sẽ thấy trạng thái của container đã thay đổi từ “đang chạy” sang “đã dừng”.

Dừng các container Toolbx đang chạy

Nếu bạn có một container đang dừng và bạn muốn sử dụng lại, bạn chỉ cần enter vào nó, và Toolbx sẽ tự động khởi động nó cho bạn:

toolbox enter python-dev

Xóa các container mà bạn không còn cần

Theo thời gian, bạn có thể tích lũy các container mà bạn không còn sử dụng, và những container này chiếm dung lượng đĩa trên hệ thống của bạn. Khi bạn chắc chắn rằng mình không còn cần một container nữa, bạn có thể xoá hoàn toàn nó bằng cách sử dụng lệnh rm:

toolbox rm python-dev

Trước khi xóa container, Toolbx sẽ yêu cầu bạn xác nhận hành động, chỉ cần gõ y để xác nhận, và Toolbx sẽ xóa container cùng với tất cả các gói và cấu hình mà bạn đã cài đặt bên trong nó.

Lưu ý Quan trọng: Việc xóa một container sẽ xoá tất cả các gói, cấu hình hệ thống và mọi dữ liệu được lưu trữ bên trong hệ thống file của container, nhưng các tệp trong thư mục home của bạn sẽ hoàn toàn an toàn.

Sau khi gỡ bỏ, bạn có thể kiểm tra dung lượng đĩa của tất cả các container, image và volume với:

podman system df

Xem dung lượng đĩa được sử dụng bởi các tài nguyên Toolbx

Nếu bạn muốn giải phóng dung lượng đĩa bằng cách xóa tất cả các container đã dừng và các hình ảnh không sử dụng, bạn có thể chạy lệnh dọn dẹp sau:

podman system prune
Kết luận

Toolbx cung cấp cho bạn một cách mạnh mẽ để quản lý các môi trường phát triển trên hệ thống Fedora của bạn mà không gặp phải sự phức tạp của các máy ảo truyền thống.

Trong suốt hướng dẫn này, bạn đã học cách tạo các container riêng biệt, chạy các ứng dụng đồ họa và quản lý nhiều môi trường phát triển trong khi vẫn giữ cho hệ thống cơ bản của bạn sạch sẽ.

Bạn có thấy hướng dẫn này hữu ích không? Hãy chia sẻ trải nghiệm, câu hỏi hoặc mẹo của bạn trong phần bình luận bên dưới. Phản hồi của bạn giúp chúng tôi cải thiện nội dung và hỗ trợ những độc giả khác trong hành trình sử dụng Toolbx. :