Apple giới thiệu Container Machine: Môi trường Linux tích hợp hoàn hảo trên macOS
Apple đã ra mắt Container Machine, một công cụ cung cấp môi trường Linux hoạt động liền mạch và tích hợp sâu trên macOS. Công cụ này cho phép người dùng chạy các dịch vụ hệ thống thực tế, chia sẻ thư mục tự động và sử dụng công cụ macOS để biên dịch mã nguồn ngay trong môi trường Linux.

Apple vừa giới thiệu một tính năng mới thú vị mang tên Container Machine, được thiết kế để mang lại trải nghiệm Linux liền mạch và tích hợp sâu trên nền tảng macOS. Khác với các container truyền thống thường được mô hình hóa theo một ứng dụng cụ thể, Container Machine được xây dựng để mô phỏng một môi trường Linux hoàn chỉnh.
Tại sao nên sử dụng Container Machine?
Container Machine cung cấp một giải pháp nhanh chóng, nhẹ nhàng nhưng có tính bền vững (persistent), dựa trên các ảnh OCI tiêu chuẩn. Điểm nổi bật nhất chính là khả năng tích hợp với máy chủ (host):
- Tích hợp người dùng và thư mục: Tên người dùng và thư mục home của bạn trên macOS sẽ được tự động ánh xạ vào môi trường Linux. Điều này có nghĩa là các kho mã (repositories) và tệp cấu hình (dotfiles) của bạn đều có sẵn trên cả hai nền tảng.
- Edit trên Mac, Build trong Linux: Bạn có thể sử dụng các trình soạn thảo hoặc IDE yêu thích trên macOS để viết code, sau đó biên dịch và chạy ứng dụng ngay bên trong môi trường Linux mà không cần sao chép tệp tin.
- Sử dụng công cụ macOS cho artifact Linux: Các công cụ như profiler, trình debug GUI trên macOS có thể truy cập trực tiếp vào các tệp tin mà container machine nhìn thấy.
Chạy dịch vụ Linux thực tế
Một trong những lợi ích lớn nhất là khả năng chạy các dịch vụ hệ thống dài hạn (long-running services). Container Machine chạy init system của ảnh, cho phép bạn sử dụng các lệnh như systemctl start postgresql trên các ảnh có cài đặt systemd. Điều này cực kỳ hữu ích khi bạn cần chạy database hoặc các thành phần khác của stack công nghệ dưới dạng dịch vụ hệ thống.
Bạn cũng có thể tạo nhiều môi trường cho các bản phân phối Linux khác nhau như Alpine, Ubuntu hay Debian, tất cả đều chia sẻ cùng một thư mục $HOME từ máy Mac của bạn.
Bắt đầu nhanh với Container Machine
Để sử dụng, bạn có thể cài đặt công cụ container và thực hiện các lệnh cơ bản sau:
Tạo một máy container từ ảnh Alpine:
container machine create alpine:latest --name dev
Chạy một lệnh đơn giản hoặc mở shell tương tác:
container machine run -n dev whoami
container machine run -n dev pwd
container machine run -n dev
Lệnh container machine run sẽ khởi động máy nếu nó đang dừng. Bạn cũng có thể đặt một máy mặc định để bỏ qua cờ -n:
container machine set-default dev
container machine run
Quản lý và tùy chỉnh tài nguyên
Bạn có thể liệt kê, kiểm tra, dừng hoặc xóa các máy container một cách dễ dàng:
container machine ls
container machine stop dev
container machine rm dev
Công cụ cũng cho phép tùy chỉnh tài nguyên như CPU và bộ nhớ. Ví dụ, để cấp phát 4 CPU và 8GB bộ nhớ:
container machine set -n dev cpus=4 memory=8G
container machine stop dev
container machine run -n dev -- nproc
Tự xây dựng ảnh Container Machine
Bất kỳ ảnh Linux nào có chứa /sbin/init đều có thể hoạt động như một Container Machine. Apple cung cấp ví dụ về Dockerfile để xây dựng ảnh Ubuntu 24.04 với systemd và các công cụ dòng lệnh phổ biến. Bạn có thể tùy chỉnh quá trình thiết lập bằng cách thêm script /etc/machine/create-user.sh vào ảnh để cấu hình người dùng theo ý muốn.
Với Container Machine, Apple đang cung cấp cho các nhà phát triển một giải pháp mạnh mẽ để làm việc đa nền tảng ngay trên chiếc Mac của họ, kết hợp sự tiện lợi của macOS với sức mạnh của môi trường Linux.
