Chuyển đến nội dung chính

Docker: Cài đặt môi trường phát triển Windows Container mà không cần Docker Desktop - Part 1.3

Trước tiên, bạn cần xem qua 3 bài viết sau đây nếu chưa biết Docker là gì

Nếu bạn đọc qua Part 1.2, sẽ hiểu tại sao chúng ta sẽ không sử dụng Docker Desktop.

Docker Desktop cung cấp cho bạn quyền truy cập vào Windows Containers và Linux Containers thông qua WSL2 hoặc Hyper-V

Microsoft cung cấp cho user cài đặt Linux thông qua WSL2, nghĩa là bạn có thể sử dụng được các bản distro Linux trên Windows. Bạn cũng có thể cài đặt Docker trên Linux (Docker CE chứ không phải Docker Desktop nha) thông qua các package và nhiều config (Part 1.2). Nhưng Docker trên Linux không cho phép bạn tạo Windows Containers.

Có 2 giải pháp: sử dụng Rancher Desktop hoặc Docker binaries.

Tham khảo giấy phép của Docker: https://github.com/moby/moby/blob/master/LICENSE

Nhược điểm là bạn không thể sử dụng được docker scan, docker compose.

Cài đặt

Windows Containers yêu cầu Windows 10/11 Pro hoặc Enterprise phiên bản 1607 trở lên.

Để bắt đầu, trong Windows features, bạn enable:

  • Container
  • Hyper-V

Trường hợp bạn sử dụng Windows Home, sử dụng 2 đoạn script sau để bật Hyper-V và Container

Mở notepadd++, tạo file hv.bat với nội dung như sau:
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*containers*.mum >containers.txt
for /f %%i in ('findstr /i . containers.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del containers.txt
Dism /online /enable-feature /featurename:Containers -All /LimitAccess /ALL
pause
Tạo file container.bat với nội dung như sau:
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause

Sau khi lưu xong, bạn kích chuột phải vào tệp > chọn Run As Administrator (sẽ mất một khoản thời để cài đặt chương trình). Sau khi hoàn thành, bạn khởi động lại máy tính của mình.

 Trường hợp bạn sử dụng Windows Professional: Mở PowerShell với quyền Administrator

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName Containers

Cài đặt Scoop

Scoop là trình cài đặt phần mềm tương tự như Chocolatey nhưng cách hoạt động tương tự như npm

Mở Powershell với quyền user

Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
Sau đó cài đặt git và aria2
scoop install git aria2
Tiếp theo là cài đặt Docker
scoop install docker

Thiết lập Docker trong Windows

Mở PowerShell với quyền Administrator
dockerd --register-service ; Start-Service docker ; exit

dockerd.exe --register-service được dùng để tạo "Docker" service và bật lên mỗi khi start Windows

Tuy nhiên, bạn có thể tắt dockerd để tránh tốn CPU, RAM.

Nhấp phải vào dockerd, chọn Properties => General => Startup type => Manual


Mặc định, người dùng không có quyền Administrator (A non-privileged user is a user that does not belong to the Dynamic Data Masking administration group.) sẽ không thể sử dụng được Docker

Sau mỗi lần khởi động máy, muốn sử dụng Docker, bạn mở PowerShell với quyền Aministrator

Start-Service docker
Kiểm tra docker
docker run hello-world:nanoserver
Bạn sẽ thấy image sẽ được pull và và container sẽ được tạo sau đó.

Tham khảo

https://boxofcables.dev/a-lightweight-windows-container-dev-environment/

https://rancherdesktop.io/

Chúc các bạn thành công!

Nhận xét