- Tích hợp trực tiếp các container Linux sử dụng nhân WSL 2 để tối ưu hóa hiệu năng CPU và bộ nhớ.
- Cấu hình khả năng tương tác giữa giao diện dòng lệnh Docker trên Windows và các bản phân phối Linux đã cài đặt.
- Quản lý nâng cao các phân vùng và đường dẫn tệp để ngăn ngừa lỗi gắn kết giữa hệ thống tệp NTFS và ext4.
Làm thế nào để sử dụng Docker Desktop với WSL mà không xảy ra xung đột? Nếu bạn là một nhà phát triển làm việc trên Windows, có lẽ bạn đã biết rằng việc thiết lập môi trường Linux có thể rất khó khăn nếu không được thực hiện đúng cách. Sự xuất hiện của WSL 2 đã thay đổi luật chơi, cho phép chúng ta thực hiện một nhân Linux thực sự trong hệ điều hành của chúng ta mà không cần máy ảo chiếm dụng toàn bộ tài nguyên máy tính.
Vấn đề phát sinh khi chúng ta muốn sử dụng Docker. Cho dù bạn đang tìm kiếm sự tiện lợi của Docker Desktop hay thích cách tiếp cận trực tiếp hơn bằng cách cài đặt công cụ này trực tiếp trên bản phân phối, đều có những lựa chọn. có nhiều cách để đạt được điều đóTrong bài viết này, chúng ta sẽ phân tích tất cả các tùy chọn để giúp quy trình làm việc của bạn diễn ra suôn sẻ và tránh gặp phải các lỗi kết nối daemon gây khó chịu.
Giải pháp nhanh chóng: Docker Desktop với hệ thống phụ trợ WSL 2

Đối với hầu hết mọi người, lựa chọn đơn giản nhất là cài đặt Docker Desktop và để nó thực hiện các tác vụ nặng nhọc. Khi cài đặt, điều quan trọng là phải chọn ô này. Khả năng tương thích với WSL 2Điều này thay thế kiến trúc Hyper-V cũ bằng một kiến trúc nhẹ hơn và nhanh hơn nhiều.
Sau khi cài đặt xong, chỉ cần nhấp vào "tiếp theo" là chưa đủ. Bạn cần vào phần cài đặt, sau đó nhập... Tài nguyên và sau đó tích hợp vào WSL.Đây là nơi điều kỳ diệu xảy ra: bạn cần kích hoạt công tắc cho bản phân phối cụ thể mà bạn đang sử dụng (như Ubuntu hoặc Debian). Điều này cho phép Docker Desktop tạo ra các bản phân phối nội bộ của riêng nó, được gọi là docker-desktop và docker-desktop-data, quản lý công cụ và dữ liệu một cách riêng biệt so với môi trường phát triển của bạn.
Giải pháp thay thế dành cho những người cầu toàn: Docker Engine mà không cần Docker Desktop.

Một số người thích tránh sử dụng phần mềm của bên thứ ba và muốn tự cài đặt Docker. trực tiếp trong bản phân phối Linux của bạnĐể thực hiện việc này, trước tiên bạn phải đảm bảo rằng WSL 2 được đặt làm phiên bản mặc định bằng lệnh sau: wsl --set-default-version 2 và tính năng ảo hóa đã được bật trong BIOS của máy tính.
Quá trình này bao gồm việc thêm các kho lưu trữ Docker chính thức vào terminal Linux của bạn, cài đặt engine (docker-ce), CLI và plugin Compose. Một thủ thuật quan trọng ở đây là chạy lệnh sau: sudo usermod -aG docker $USER vậy nên bạn không cần phải viết mồ hôi Mỗi lần muốn nâng một thùng chứa, bạn đều phải làm việc đó, điều này khá phiền phức.
Có gì mới với wslc.exe: Một cách thức mới để đóng gói container
Nó vừa mới xuất hiện wslc.exe, một công cụ dòng lệnh được tích hợp sẵn trong các phiên bản WSL mới nhất (cụ thể là từ phiên bản 2.9.3 trở lên). Tiện ích này cho phép biên dịch và chạy container Linux mà không cần cài đặt công cụ Docker bên ngoài, đơn giản hóa trải nghiệm cho những người chỉ cần thực hiện các tác vụ container cơ bản.
Để tận dụng điều này, bạn nên cập nhật WSL bằng lệnh sau: wsl --update --pre-release. Với wslc Bạn có thể làm điều đó từ một cách đơn giản. run hello-world cho đến khi tạo hình ảnh của riêng bạn Sử dụng Containerfile, tích hợp liền mạch với Visual Studio Code và tiện ích mở rộng WSL của nó để gỡ lỗi mã theo thời gian thực.
Khắc phục các xung đột và lỗi kết nối thường gặp
Rất thường xuyên gặp phải lỗi đáng sợ này. "Không thể kết nối với tiến trình nền Docker"Điều này thường xảy ra vì hai lý do: hoặc dịch vụ chưa khởi động, hoặc còn sót lại các bản cài đặt cũ gây nhầm lẫn cho giao diện dòng lệnh (CLI). Nếu bạn đang sử dụng WSL 1, tốt nhất nên thực hiện lệnh sau: vệ sinh sâu xóa các thư mục như /var/lib/docker và dọn dẹp các biến môi trường trong tệp của bạn. .bashrc.
Một điểm quan trọng khác là quản lý dung lượng. Docker Desktop yêu cầu các đường dẫn như sau: /c/Users/...trong khi WSL sử dụng /mnt/c/Users/...Để giải quyết xung đột này, bạn có thể tạo một tệp. /etc/wsl.conf và cấu hình điểm gắn kết trên thư mục gốc (root = /), điều này sẽ giúp bạn Đường dẫn tệp tin tương thích và bạn không cần phải thực hiện các thao tác tạo liên kết tượng trưng thủ công gây nhiều rắc rối.
Tối ưu hóa không gian và hiệu năng
Các container và hình ảnh có thể nhanh chóng làm đầy ổ cứng của bạn. Để ngăn phân vùng Windows bị đầy, bạn nên sử dụng lệnh này. wsl --manage <distro> --set-sparse trueđiều này cho phép Ổ đĩa ảo được phân tán và tự động giải phóng dung lượng.
Ngoài ra, để giữ cho hệ thống luôn sạch sẽ, hãy tập thói quen chạy máy. docker system prune o wslc image prune Định kỳ. Thao tác này sẽ xóa tất cả các hình ảnh và vùng chứa bị đóng băng đang nằm im ở đó. chiếm không gian không cần thiết và làm chậm hệ thống.
Đam mê công nghệ từ khi còn nhỏ. Tôi thích được cập nhật về lĩnh vực này và trên hết là truyền đạt nó. Đó là lý do tại sao tôi đã cống hiến hết mình cho việc truyền thông trên các trang web công nghệ và trò chơi điện tử trong nhiều năm nay. Bạn có thể thấy tôi viết về Android, Windows, MacOS, iOS, Nintendo hoặc bất kỳ chủ đề liên quan nào khác mà bạn nghĩ đến.