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ông việc của anh ta là bốc xếp hàng hóa vào các thùng chứa hàng tiêu chuẩn (gọi là các công-ten-nơ - container). Vậy, trong lĩnh vực phần mềm, bạn có thể hình dung ra chức năng của Docker rồi.
Docker là một nền tảng, dùng để "đóng gói" ứng dụng cùng với các thư viện, môi trường cần thiết vào một thùng chứa gọi là container.
Vì Docker là một nền tảng (platform), nên nó sẽ gồm nhiều thành phần khác nhau.
Xem biểu tượng của Docker.
Dùng docker có lợi gì?- Giúp mã nguồn chạy ổn định, với cùng kết quả trên máy cá nhân, máy đồng nghiệp và 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 Container.
Để dễ hình dung, trên bến cảng, docker engine là hệ thống để vận hành bến cảng, gồm máy móc, cần cẩu, ban quản lý.
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
