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

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.