Giới thiệu
Hiện tại, Docker đã công bố chính sách thay đổi về giá cả và đăng ký của họ, yêu cầu đăng ký trả phí cho người dùng bên ngoài mục đích sử dụng cá nhân, giáo dục và doanh nghiệp nhỏ.
Việc thay đổi giấy phép này chỉ áp dụng cho Docker Desktop. Nên bạn không thể cài đặt Docker Desktop cho máy xài Windows và Mac.
Tuy nhiên bạn có thể cài đặt Docker Engine trên Windows bằng Windows Subsystem for Linux 2! Và vì sử dụng Linux, nên bạn sẽ tập làm quen với các lệnh thay vì sử dụng GUI trên Docker Desktop.
WSL và WSL2
Windows Subsystem for Linux, còn gọi là WSL, là một subsystem cho phép người dùng Windows 11 và Windows 10 users sử dụng Linux distributions như Ubuntu, Debian, Fedora, Kali, Alpine, hoặc Suse mà không cần thay đổi hệ điều hành đang sử dụng (Windows).Bảng so sánh tính năng WSL and WSL2:
Feature | WSL | WSL2 |
---|---|---|
Integration between Windows and Linux | ✅ | ✅ |
Fast boot times | ✅ | ✅ |
Small resource foot print compared to traditional Virtual Machines | ✅ | ✅ |
Runs with current versions of VMware and VirtualBox | ✅ | ✅ |
Managed VM | ❌ | ✅ |
Full Linux Kernel | ❌ | ✅ |
Full system call compatibility | ❌ | ✅ |
Performance across OS file systems | ✅ | ❌ |
Để cài đặt WSL2, bạn tham khảo tại đây: https://nhatkyhoctap.blogspot.com/2022/08/cach-cai-at-va-huy-ang-ky-distro.html
wsl -l -v
Kết quả
NAME STATE VERSION
* Ubuntu Running 2
Sử dụng WSL
Trong Windows, bạn mở app Windows Terminal (hoặc PowerShell, Command Line), gõ WSL
Gõ exit để thoát khỏi WSL,
Kiểm tra WSL và Ubuntu Version
WSL Version: "uname -r"
Ubuntu Version Information: cat /etc/os-release
Cài đặt Docker Engine trên WSL2 (Ubuntu)
Mình chọn Ubuntu, 1 phần vì đây là hệ điều hành quen thuộc, 1 phần vì có rất nhiều bài hướng dẫn gỡ rối khi xảy ra vấn đề.
Ubuntu là một hệ điều hành máy tính dựa trên Debian GNU/Linux, một bản phân phối Linux thông dụng. Tên của nó bắt nguồn từ "ubuntu" trong tiếng Zulu, có nghĩa là "tình người", mô tả triết lý Ubuntu: "Tôi được là chính mình nhờ có những người xung quanh," (I am what I am because of who we all are) một khía cạnh tích cực của cộng đồng
Để sử dụng quyền root, bạn thêm sudo trước mỗi lệnh.
Trước khi cài đặt, bạn cần đảm bảo đã gỡ Ubuntu trên Windows và WSL2
Trên Windows: uninstall Docker Desktop
Trên WSL2:
sudo apt remove docker docker-engine docker.io containerd runc
Các lệnh dưới đây dùng để cài đặt Docker Engine trên Ubuntu
sudo apt-get update
sudo apt-get update và sudo apt-get upgrade là hai lệnh bạn có thể sử dụng để cập nhật tất cả các gói của mình trong Debian hoặc bản phân phối Linux dựa trên Debian.
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
lsb-release
Các dấu \ để xuống dòng, nhìn code đẹp hơn. Hoặc bạn có thể gõ nguyên câu lệnh
sudo apt install — no-install-recommends apt-transport-https ca-certificates curl gnupg2
Gói apt-transport-https này cho phép hệ thống của bạn truy cập các kho lưu trữ qua giao thức HTTPS an toàn.
GnuPG hoặc GPG (GNU Privacy Guard) là một phần mềm được phát triển bởi FSF (Tổ chức Phần mềm Tự do) để triển khai chương trình tương thích OpenPGP. Với nó, bạn có thể mã hóa và giải mã các tin nhắn văn bản thuần túy, các tệp và tạo chữ ký điện tử để bảo mật nội dung mà chúng tôi chuyển qua email hoặc bất kỳ dịch vụ mạng nào khác. Ngoài ra, GPG là miễn phí và miễn phí theo giấy phép GPL.
Lệnh lsb_release hiển thị thông tin LSB (Linux Standard Base) về bản phân phối Linux cụ thể của bạn, bao gồm số phiên bản, tên mã phát hành và ID nhà phân phối.
source /etc/os-release
Mở 1 child process để thực hiện song song với bas. Thêm Docker APT keys
curl -fsSL https://download.docker.com/linux/${ID}/gpg | sudo apt-key add
Thêm Docker api repository
echo "deb [arch=amd64] https://download.docker.com/linux/${ID} ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list
Thêm Docker CE
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Docker Community Edition (CE) thì được sử dụng phù hợp với đối tượng là Developers, những team nhỏ – vừa bắt đầu tìm hiểu Docker và tất nhiên là miễn phí.
Bật Docker service
sudo service docker start
Đảm bảo docker group exists
sudo groupadd docker
Đảm bảo Docker nằm trong quyền admin
Daemon sẽ bị tắt sau mỗi lần khởi động máy. Dùng câu lệnh sau để kiểm tra và bật docker daemon
$ sudo service --status-all
$ sudo service docker start
Bật Docker khi khởi động máy
$ sudo systemctl enable docker
Để tắt Docker khi startup
$ sudo systemctl disable docker
Làm thế nào để tạo symbolic link trong Linux
Symbolic Link (liên kết tượng trưng) trong ngành máy tính là thuật ngữ chỉ một file tham chiếu đến file khác hoặc thư mục khác dưới dạng đường dẫn tương đối hoặc tuyệt đối. Nó cũng hay được gọi tắt là Symlink hay softlink.
Có thể hiểu Symbolic Link đơn giản là đường dẫn trỏ đến vị trí của file nào đó trong hệ thống máy tính. Bạn có thể tạo nhiều symbolic links đặt ở nhiều nơi khác nhau nhưng vẫn trỏ về đúng 1 file gốc. Vì vậy, gia tăng tính tiện lợi cho việc tìm kiếm file trong một dòng lệnh.
Dựa vào tính năng này, bạn có thể tạo project trong Windows, và thực hiện việc build Docker image trong Linux
Tạo symbolic link cho file/thư mục:
ln -s [Specific file/directory] [symlink name]
Lệnh ln trong Linux tạo ra liên kết giữa symbolic link file và file gốc.
-s – lựa chọn để tạo Symbolic Links.
[Specifid file/directory] – tên của file gốc hoặc nơi bạn muốn tạo file link tới
[Symlink name] – tên của file symbolic link
Trường hợp bạn ko ghi rõ symlink name, hệ thống sẽ link tới thư mục hiện hành
Dùng lệnh pwd(viết tắt từ print working directory) được dùng để in ra đường dẫn đến thư mục làm việc hiện tại.
Các thư mục trong Windows sẽ được ánh xạ qua thư mục /mnt
VD:
Trong Windows, bạn có phân vùng: C, D
Gõ
Giả sử bạn ở thư mục: /home/anbinhtrong
Trong bash, bạn gõ
ls /mnt
Kết quả
c d wsl
Trong Windows, bạn có đường dẫn: D:\Practices\Docker
ls /mnt/d/Practice
Kết quả
'Stock 12345' Docker 'Guideline deploy Docker.docx' MicroServices Templates
Database Excels 'Test.xlsx' MindMaps Testing
DesignPatterns FrontEnd Kubernetes
Chúng ta sẽ thực hiện tạo link giữa /home/anbinhtrong với folder Docker. Bạn cd tới folder /home/anbinhtrong
ln -s /mnt/d/Practice/Docker
Giả sử bạn đang ở folder /home/anbinhtrong, bạn gõ
ls
Kết quả
Docker
Tạo file readme.txt
touch readme.txt
File readme.txt sẽ được tạo trong D:\Practices\Docker.
Hi vọng bài viết này sẽ giúp các bạn sử dụng được Docker trong WSL
Tham khảo
https://roshitrajan.medium.com/install-docker-engine-on-wsl2-32bb7927e4e8
https://levelup.gitconnected.com/running-your-first-docker-container-in-wsl-2-22c71b24038
https://subhankarsarkar.com/wsl2-for-containerised-dot-net-core-development-using-docker/
https://peter-whyte.com/create-a-link-between-local-windows-files-and-wsl/
Chúc các bạn thành công!
Liệt kê tất cả distro Linux: wsl --list --online
Trả lờiXóaFix: docker cannot start: wget -qO- https://get.docker.com/ | sh
Trả lờiXóaSử dụng Docker with non-root user: https://docs.docker.com/engine/install/linux-postinstall/#specify-dns-servers-for-docker
Trả lờiXóaTrường hợp có dấu khoảng trắng, thì bạn thêm dấu \ trước mỗi khoảng trắng
Trả lờiXóaVD: ln -s /mnt/d/Projects/Lin\ chap/Nganh\ Hon