Phát triển với Docker trên Hệ thống con Windows cho Linux (WSL)

Phát triển với Docker trên Hệ thống con Windows cho Linux (WSL)

Để hoạt động hoàn toàn với dự án Docker trong WSL, bạn phải cài đặt WSL 2. Tại thời điểm viết bài, bạn chỉ có thể sử dụng nó khi tham gia chương trình Windows Insider (WSL 2 có sẵn trong các bản dựng 18932 trở lên). Điều đáng nói riêng là cần có phiên bản Windows 10 Pro để cài đặt và định cấu hình Docker Desktop.

Các bước đầu tiên

Sau khi tham gia chương trình Người dùng nội bộ và cài đặt các bản cập nhật, bạn cần cài đặt bản phân phối Linux (trong ví dụ này là Ubuntu 18.04) và Docker Desktop với WSL 2 Tech Preview:

  1. Bản xem trước công nghệ Docker Desktop WSL 2
  2. Ubuntu 18.04 từ Windows Store

Tại cả hai điểm, chúng tôi làm theo tất cả các hướng dẫn cài đặt và cấu hình.

Cài đặt bản phân phối Ubuntu 18.04

Trước khi chạy Ubuntu 18.04, bạn cần kích hoạt Windows WSL và Windows Virtual Machine Platform bằng cách chạy hai lệnh trong PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (yêu cầu khởi động lại máy tính)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Sau đó, chúng tôi cần đảm bảo rằng chúng tôi sẽ sử dụng WSL v2. Để thực hiện việc này, trong thiết bị đầu cuối WSL hoặc PowerShell, hãy chạy các lệnh sau:

  • wsl -l -v - xem phiên bản nào hiện đang được cài đặt. Nếu là 1 thì chúng ta sẽ di chuyển xuống dưới danh sách
  • wsl --set-version ubuntu 18.04 2 - để cập nhật lên phiên bản 2
  • wsl -s ubuntu 18.04 — cài đặt Ubuntu 18.04 làm bản phân phối mặc định

Bây giờ bạn có thể khởi động Ubuntu 18.04 và định cấu hình nó (chỉ định tên người dùng và mật khẩu của bạn).

Cài đặt Docker máy tính để bàn

Thực hiện theo các hướng dẫn trong quá trình cài đặt. Máy tính sẽ yêu cầu khởi động lại sau khi cài đặt và trong lần khởi động đầu tiên để bật Hyper-V (cần hỗ trợ Windows 10 Pro).

Quan trọng! Nếu Docker Desktop báo cáo bị tường lửa chặn, hãy đi tới cài đặt chống vi-rút và thực hiện các thay đổi sau đối với quy tắc tường lửa (trong ví dụ này, Kaspersky Total Security được sử dụng làm phần mềm chống vi-rút):

  • Đi tới Cài đặt -> Bảo mật -> Tường lửa -> Định cấu hình quy tắc gói -> Dịch vụ cục bộ (TCP) -> Chỉnh sửa
  • Xóa cổng 445 khỏi danh sách cổng cục bộ
  • Tiết kiệm

Sau khi khởi động Docker Desktop, chọn WSL 2 Tech Preview từ menu ngữ cảnh của nó.

Phát triển với Docker trên Hệ thống con Windows cho Linux (WSL)

Trong cửa sổ mở ra, nhấp vào nút Bắt đầu.

Phát triển với Docker trên Hệ thống con Windows cho Linux (WSL)

Docker và docker-compose hiện có sẵn trong bản phân phối WSL.

Quan trọng! Docker Desktop được cập nhật hiện có một tab với WSL bên trong cửa sổ cài đặt. Hỗ trợ WSL được kích hoạt ở đó.

Phát triển với Docker trên Hệ thống con Windows cho Linux (WSL)

Quan trọng! Ngoài hộp kiểm kích hoạt WSL, bạn cũng cần kích hoạt bản phân phối WSL của mình trong tab Tài nguyên->Tích hợp WSL.

Phát triển với Docker trên Hệ thống con Windows cho Linux (WSL)

Ra mắt

Điều không mong đợi là nhiều vấn đề nảy sinh khi cố gắng nâng các vùng chứa dự án nằm trong thư mục người dùng Windows.

Các loại lỗi khác nhau liên quan đến việc khởi chạy tập lệnh bash (thường bắt đầu khi xây dựng các thùng chứa để cài đặt các thư viện và bản phân phối cần thiết) và những lỗi phổ biến khác để phát triển trên Linux khiến chúng tôi nghĩ đến việc đặt các dự án trực tiếp vào thư mục người dùng của Ubuntu 18.04.

.

Từ giải pháp cho vấn đề trước đó, như sau: cách làm việc với các tệp dự án thông qua IDE được cài đặt trên Windows. Là một “cách thực hành tốt nhất”, tôi chỉ tìm thấy một lựa chọn duy nhất cho mình - làm việc thông qua VSCode (mặc dù tôi là người hâm mộ PhpStorm).

Sau khi tải xuống và cài đặt VSCode, hãy nhớ cài đặt nó trong tiện ích mở rộng Gói mở rộng phát triển từ xa.

Sau khi cài đặt tiện ích mở rộng được đề cập ở trên, chỉ cần chạy lệnh code . trong thư mục dự án khi VSCode đang chạy.

Trong ví dụ này, nginx được yêu cầu để truy cập các vùng chứa thông qua trình duyệt. Cài đặt nó qua sudo apt-get install nginx Hóa ra không đơn giản như vậy. Đầu tiên, chúng tôi cần cập nhật bản phân phối WSL bằng cách chạy sudo apt update && sudo apt dist-upgradevà chỉ sau đó mới bắt đầu cài đặt nginx.

Quan trọng! Tất cả các miền cục bộ đều được đăng ký không phải trong tệp /etc/hosts của bản phân phối Linux (thậm chí nó còn không có ở đó) mà trong tệp máy chủ (thường nằm ở C:WindowsSystem32driversetchosts) của Windows 10.

nguồn

Bạn có thể tìm thấy mô tả chi tiết hơn về từng bước tại đây:

Nguồn: www.habr.com

Thêm một lời nhận xét