Contents
Windows Subsystem for Linux 2 (WSL 2) là một công cụ tuyệt vời trên Windows 10 và 11, tích hợp hoàn hảo với Docker. Đối với các nhà phát triển, việc hiểu rõ những gì phần mềm này mang lại và cách tận dụng tối đa cấu hình Docker-WSL 2 là rất quan trọng.
Docker Là Gì?
Docker là một nền tảng mã nguồn mở cho phép các nhà phát triển xây dựng, triển khai và chạy ứng dụng trong container một cách hiệu quả. Tất cả các phụ thuộc được đóng gói lại để dự án của bạn có thể dễ dàng triển khai trong bất kỳ môi trường nào.
Docker rất phổ biến trong số các nền tảng container hóa vì tính đáng tin cậy, chức năng và khả năng mở rộng cao. Nó chạy trên Docker engine, một công cụ DevOps quan trọng cung cấp môi trường sạch và nhẹ cho việc kiểm tra và triển khai. Docker tương tự như máy ảo nhưng ảo hóa hệ điều hành thay vì phần cứng cơ bản.
Đối với các nhà phát triển phần mềm, Docker giúp tối ưu hóa quy trình làm việc bằng cách tạo ra các container riêng biệt cho các microservices khác nhau, bao gồm các phụ thuộc cần thiết, thư viện và cấu hình. Mỗi container microservice được cách ly và có khả năng mở rộng riêng lẻ.
Cách Sử Dụng Docker Trên WSL 2
Docker tương thích với tất cả các hệ điều hành lớn như Windows, macOS và Linux. Nếu bạn đang sử dụng Windows 10 hoặc 11, bạn có thể sử dụng Docker thông qua Docker Desktop và tích hợp nó với Windows Subsystem for Linux 2 để cải thiện hiệu suất. Bạn có thể tải Docker Desktop cho Windows từ trang web chính thức của Docker.
Hình ảnh container mới được xây dựng trên Docker
Windows Subsystem for Linux (WSL) là một tính năng quý giá cho phép người dùng Windows chạy các bản phân phối Linux như Ubuntu và Kali mà không cần thiết lập máy ảo hoặc khởi động kép.
Điều này cũng có nghĩa là người dùng Windows có thể sử dụng trực tiếp các công cụ dòng lệnh Linux, ứng dụng và tiện ích mà không cần thêm bước cài đặt. Phiên bản WSL mới nhất, WSL 2, cung cấp sự ổn định cao hơn và một kernel Linux riêng biệt.
Vì các container Docker rất mạnh mẽ, bạn thậm chí có thể cấu hình chúng để lưu trữ máy chủ của mình; các container Docker nginx thường được sử dụng làm máy chủ web. Ngoài ra, bạn có thể sử dụng Docker theo nhiều cách khác:
- Chạy các bản phân phối Linux một cách dễ dàng
- Thiết lập máy chủ web cho mục đích học tập hoặc kiểm tra
- Triển khai ứng dụng di động
- Đóng gói ứng dụng vào một tệp hình ảnh duy nhất
- Đơn giản hóa quy trình CI/CD
Bạn cần làm quen với các thực hành tốt nhất để sử dụng Docker với Windows Subsystem for Linux 2, giống như bạn sẽ làm với bất kỳ nền tảng hoặc công cụ nào khác. Là một nhà phát triển, tôi có thể nói từ kinh nghiệm cá nhân rằng bạn sẽ trở nên năng suất và hiệu quả hơn nhiều khi tích hợp các mẹo sau vào quy trình làm việc của mình.
1. Tích Hợp VS Code Với WSL 2
Visual Studio Code là một IDE phổ biến được yêu thích nhờ vào các tính năng tuyệt vời, cộng đồng và các tiện ích mở rộng. Là một nhà phát triển, khả năng sử dụng Visual Studio Code để phát triển ứng dụng trên nền tảng Windows trong khi cũng chạy những ứng dụng đó trên kernel Linux là một tính năng rất có lợi và gần như không thể tin được.
Khi bạn tích hợp VS Code vào Windows Subsystem for Linux, bạn có thể tận dụng kernel Linux chuyên dụng của nó để nâng cao tính tương thích đa nền tảng. Bạn có thể tối ưu hóa quy trình làm việc của mình hơn nữa bằng cách sử dụng terminal tích hợp trong VS Code với WSL 2.
Để thiết lập VS Code với WSL 2 trên Windows, bạn có thể cấu hình extension WSL từ VS Code Marketplace và bắt đầu sử dụng.
2. Sử Dụng Hệ Thống Tệp Của WSL 2
Để chạy các container Docker của bạn một cách chính xác, điều quan trọng là bạn phải dựa vào hệ thống tệp của distro WSL 2 của bạn và không phụ thuộc quá nhiều vào hệ thống tệp Windows gốc. Trong suốt kinh nghiệm làm việc với các container Docker trên WSL 2, tôi đã phát hiện ra rằng tốt hơn là lưu trữ các tệp dự án của bạn trong WSL.
3. Sử Dụng Các Script Linux Gốc
Nhiều dự án container hóa mà bạn sẽ làm việc có thể đi kèm với các script để tự động hóa trên Linux. Thông thường, các script này được phát triển đầu tiên cho Linux, và các nhà phát triển Windows không phải là ưu tiên.
Với WSL 2, toàn bộ nhóm của bạn có thể sử dụng cùng một script tự động hóa Linux, và bạn không phải lo lắng về việc duy trì các script tự động hóa tương thích với Windows cho nhóm của mình.
4. Cấu Hình BuildKit Để Cải Thiện Bảo Mật Và Hiệu Suất
BuildKit là một công cụ mã nguồn mở cải thiện quy trình xây dựng Docker truyền thống về hiệu suất và bảo mật; nó được tích hợp trực tiếp với Docker, vì vậy bạn không cần cài đặt riêng biệt.
Khi bạn kích hoạt BuildKit theo mặc định, bạn đảm bảo rằng các container của bạn đang được xây dựng với công cụ BuildKit, mang lại bảo mật, đồng thời tính, linh hoạt và lưu trữ tốt hơn.
Để kích hoạt BuildKit theo mặc định, bạn nên thực hiện các thay đổi sau trong tệp cấu hình ~/.profile:
export DOCKER_BUILDKIT=1
5. Thiết Lập Giới Hạn Tài Nguyên
Khi bạn tích hợp backend WSL 2 với Docker Desktop, bạn cấp cho Docker quyền truy cập vào tất cả các tài nguyên CPU của bạn. Việc này giúp cải thiện hiệu suất cho các container tiêu tốn nhiều tài nguyên.
Tuy nhiên, trong một số trường hợp, một container có thể phân bổ quá nhiều bộ nhớ dư thừa, gây ra sự cố với các quá trình hệ điều hành quan trọng. Bạn có nhiều khả năng gặp phải điều này khi sử dụng các container cơ sở dữ liệu hoặc microservice caching.
Rất may, bạn có thể cấu hình các container Docker để giới hạn việc sử dụng bộ nhớ và CPU của hệ thống. Bạn luôn nên cẩn thận khi cấu hình bộ nhớ hệ thống, ngay cả một lỗi nhỏ cũng có thể có hậu quả nghiêm trọng. Bạn có thể tham khảo tài liệu chính thức của Docker để có hướng dẫn chi tiết hơn về việc giới hạn bộ nhớ và tài nguyên CPU mà một container Docker tiêu thụ.
6. Khôi Phục Bộ Nhớ Đã Được Lưu Trữ
Nếu bạn đang chạy một container Docker trong WSL 2, bộ nhớ của nó nên được giải phóng khi container kết thúc. Tuy nhiên, kernel hệ điều hành thường giữ dữ liệu trong bộ nhớ cache; điều này có nghĩa là bộ nhớ thực tế được khôi phục bởi WSL 2 sẽ không đủ.
Bạn có thể khôi phục toàn bộ bộ nhớ đang được sử dụng không cần thiết như bộ nhớ cache bằng cách chạy lệnh sau qua root trong WSL 2:
echo 1 > /proc/sys/vm/drop_caches
-
WSL 2 có hỗ trợ tất cả các phiên bản của Windows không?
- WSL 2 chỉ hỗ trợ Windows 10 phiên bản 2004 và các phiên bản mới hơn, cũng như Windows 11.
-
Có thể sử dụng Docker mà không cần WSL 2 không?
- Có, bạn có thể sử dụng Docker trên Windows mà không cần WSL 2, nhưng WSL 2 cung cấp hiệu suất tốt hơn và tương thích tốt hơn với các công cụ Linux.
-
Làm thế nào để cài đặt WSL 2 trên Windows?
- Bạn có thể cài đặt WSL 2 bằng cách mở PowerShell với quyền quản trị và chạy lệnh
wsl --install
.
- Bạn có thể cài đặt WSL 2 bằng cách mở PowerShell với quyền quản trị và chạy lệnh
-
Docker có an toàn để sử dụng trên Windows không?
- Docker rất an toàn khi sử dụng trên Windows, nhưng bạn nên tuân thủ các thực hành bảo mật tốt nhất và cấu hình đúng cách để đảm bảo an toàn.
-
Làm thế nào để tối ưu hóa hiệu suất của Docker trên WSL 2?
- Để tối ưu hóa hiệu suất, bạn nên sử dụng hệ thống tệp của WSL 2, tích hợp VS Code, và cấu hình BuildKit như đã đề cập trong bài viết.
-
Có thể chạy nhiều container Docker cùng một lúc trên WSL 2 không?
- Có, bạn có thể chạy nhiều container Docker cùng một lúc trên WSL 2, miễn là bạn cấu hình đúng cách và quản lý tài nguyên hợp lý.
-
Làm thế nào để giải phóng bộ nhớ cache trên WSL 2?
- Bạn có thể giải phóng bộ nhớ cache bằng cách chạy lệnh
echo 1 > /proc/sys/vm/drop_caches
với quyền root trong WSL 2.
- Bạn có thể giải phóng bộ nhớ cache bằng cách chạy lệnh
Tạp Chí Mobile luôn cập nhật những thông tin mới nhất về Hệ Điều Hành Windows. Hãy theo dõi để không bỏ lỡ bất kỳ tin tức nào.
Tài Liệu Tham Khảo:
- How to Install Docker on Windows 10 and 11
- How to Run Linux Commands on Windows with WSL 2
- How to Set Up VS Code with WSL 2 on Windows 10 and 11
- Docker Documentation: Resource Constraints
Tối Ưu Hóa WSL 2
WSL 2 là tính năng tốt nhất cho các nhà phát triển dựa trên Windows, hoàn toàn thay đổi cách các nhà phát triển sử dụng Docker. Các nhà phát triển phải hiểu các thực hành tốt nhất để sử dụng Docker với WSL để cải thiện hiệu suất, bảo mật và linh hoạt trong quy trình làm việc.