1. Làm quen với Docker
1.1 Docker là gì?
Docker nghĩa tiếng Việt là “Nhân viên bốc xếp trên bến cảng”. Có lẽ vì vậy mà hoạt động của hệ thống Docker có mối liên hệ khá gần với việc vận hành của hệ thống vận tải biển.
Nếu bạn có dịp đi qua các cảng vận tải biển, bạn sẽ nhìn thấy các thùng hàng (container). Nếu không có các thùng này, việc vận chuyển hàng hóa sẽ rất bất tiện: rau củ có thể bị ám mùi hóa chất, thiết bị điện tử có thể bị hỏng do ẩm ướt. Khi hàng hóa được đặt trong các container tiêu chuẩn, chúng ta có thể xếp chồng chúng cạnh nhau mà không sợ ảnh hưởng lẫn nhau.
Trong lĩnh vực phần mềm, Docker là một nền tảng giúp bạn:
- "Đóng gói" ứng dụng cùng với thư viện và môi trường cần thiết thành một Docker Image (giống như việc bạn đóng hàng vào thùng container và niêm phong lại)
- "Chuyển giao" Image này tới bất kỳ máy tính nào khác
- "Khởi chạy" Image đó để tạo thành các Container
Tại máy người nhận, họ chỉ cần "chạy" cái thùng này (Image). Ứng dụng sẽ hoạt động ngay lập tức vì môi trường bên trong thùng đã được chuẩn bị sẵn, không còn nỗi lo "máy em chạy được nhưng máy anh thì không".
Nếu Image là một chiếc thùng tiêu chuẩn, đã đóng chặt và niêm phong trên bến cảng, thì Container chính là chiếc thùng đó khi đã được mở ra và các máy móc bên trong đang bắt đầu vận hành.
Xem biểu tượng của Docker.
Dùng docker có lợi gì?- Giúp mã nguồn chạy ổn định, cho ra kết quả giống nhau khi chạy trên máy cá nhân, trên máy đồng nghiệp hoặc trên máy chủ
- Bạn có thể chạy ứng dụng với các phiên bản ngôn ngữ khác nhau (ví dụ Python 2 và Python 3) trên cùng một máy mà không sợ xung đột
- Thiết lập môi trường và chạy ứng dụng chỉ trong vài giây thay vì phải cài đặt, thiết lập môi trường thủ công mất nhiều giờ
1.2 Các thành phần chính của Docker
Như đã đề cập, Docker là một nền tảng, nên nó gồm nhiều thành phần, cụ thể gồm:
- Docker Engine
- Docker Image
- Docker Container
- Docker Registry
Chúng ta cùng tìm hiểu sơ lược về các thành phần trên.
Docker Engine
Docker Engine là một ứng dụng mã nguồn mở theo mô hình client-server, dùng để khởi tạo, vận hành và quản lý các Docker Image, Docker Container.
Docker Engine gồm 3 thành phần:
- Docker Daemon: Người thực hiện
- REST API: Hệ thống truyền tin
- Docker CLI: Người điều khiển
Bạn có thể hình dung hoạt động của Docker Engine theo quy trình như sau: Người điều khiển > Hệ thống truyền tin > Người thực hiện. Cụ thể: Docker CLI ra lệnh > lệnh được truyền dưới dạng REST API > Docker Daemon nhận lệnh, và thực hiện nhiệm vụ.
Phần mềm Docker Engine có thể chạy trực tiếp trên hệ thống Linux.
Phần mềm Docker Engine không thể chạy trực tiếp trên hệ thống Windows, nên người ta đã tạo ra phần mềm Docker Desktop để bọc Docker Engine ở trong đó.
1.3 Tải và cài đặt Docker Desktop
Để cài đặt Docker Desktop, bạn hãy thực hiện theo các bước dưới đây.
Trước khi cài đặt, hãy đảm bảo máy tính của bạn đã bật tính năng virtualization (ảo hóa) trong BIOS (thường là mặc định đã bật trên các máy đời mới).
Để kiểm tra xem tính năng virtualization đã được bật hay chưa mà không cần phải khởi động lại máy để vào BIOS, bạn có thể thực hiện trên Windows theo cách sau:
- Nhấn tổ hợp phím Ctrl + Shift + Esc để mở Task Manager
- Nếu bảng hiện ra bị nhỏ, thiếu thông tin, hãy nhấn vào More details ở góc dưới
- Chọn tab Performance
- Chọn mục CPU
- Nhìn xuống góc dưới bên phải, tìm dòng chữ Virtualization. Nếu nó hiện là Enabled: Chúc mừng bạn, mọi thứ đã sẵn sàng. Nếu nó hiện là Disabled: Bạn bắt buộc phải vào BIOS để bật nó lên.
Bước 1: Tải bộ cài đặt
- Truy cập vào trang chủ chính thức của Docker: docker.com/products/docker-desktop
- Chọn phiên bản phù hợp với hệ điều hành của bạn, ví dụ: Download for Windows
Bước 2: Cài đặt (dành cho Windows)
- Chạy tập tin .exe vừa tải về
- Lưu ý: Khi hiện thông báo lựa chọn, hãy tích chọn "Use WSL 2 instead of Hyper-V". Đây là công nghệ mới giúp Docker chạy nhanh và mượt hơn rất nhiều trên Windows
- Nhấn OK và chờ quá trình giải nén, cài đặt hoàn tất
- Sau khi xong, máy tính có thể yêu cầu bạn Khởi động lại
Bước 3: Cấu hình WSL 2 (Nếu Windows yêu cầu)
Nếu sau khi khởi động, Docker báo lỗi "WSL 2 installation is incomplete", bạn chỉ cần:
- Tải gói cập nhật nhân Linux của Microsoft (theo đường dẫn Docker cung cấp trên màn hình)
- Mở PowerShell với quyền Admin và gõ lệnh: wsl --set-default-version 2
Hoặc, bạn sẽ được yêu cầu cập nhật phiên bản mới của wsl bằng cách chạy lệnh sau trong PowerShell:
wsl --update
Bước 4: Kiểm tra thành quả
- Sau khi cài đặt xong, bạn mở ứng dụng Docker Desktop lên. Chờ cho biểu tượng "chú cá voi" ở góc màn hình (trong system tray) ngừng nhấp nháy.
- Để chắc chắn "anh nhân viên bốc xếp" đã sẵn sàng, bạn mở Terminal (hoặc CMD/PowerShell) và gõ:
docker version
Nếu màn hình hiện ra thông tin phiên bản của cả Client và Server, chúc mừng bạn! Bạn đã mang được bến cảng Docker về máy mình thành công.
1.4 Bài tập và câu hỏi
Bài tập 1a. Tải và cài đặt Docker Desktop trên máy của bạn.
Câu hỏi ôn tập
Câu 1.1 Trong mô hình hoạt động của Docker Engine, thành phần nào đóng vai trò là "Người thực hiện" (nhận lệnh và trực tiếp xử lý các nhiệm vụ)?
A. Docker CLI
B. REST API
C. Docker Daemon
D. Docker Desktop
Câu 1.2 Khi cài đặt Docker Desktop trên Windows, công nghệ nào được khuyến khích sử dụng để giúp ứng dụng chạy nhanh và mượt mà hơn?
A. Hyper-V
B. WSL 2
C. Virtualization trong BIOS
D. REST API
Câu 1.3 Đâu là một trong những lợi ích chính của việc sử dụng Docker được đề cập trong tài liệu?
A. Chỉ chạy được trên hệ điều hành Linux
B. Giúp mã nguồn chạy ổn định và ra cùng kết quả trên nhiều môi trường máy tính khác nhau
C. Tăng dung lượng bộ nhớ của máy tính cá nhân
D. Thay thế hoàn toàn các nhân viên bốc xếp tại bến cảng
