Cài đặt Docker Engine trên Ubuntu 24.04
Bước đầu tiên là loại bỏ các gói Docker cũ (nếu có) và cập nhật hệ thống để đảm bảo không có xung đột phiên bản.
Chúng ta cần xóa các gói Docker legacy và cập nhật repository của Ubuntu để lấy các gói hệ thống mới nhất.
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
Kết quả mong đợi: Không có lỗi về gói đã cài đặt, và danh sách package repository được cập nhật thành công.
Cài đặt các dependency cần thiết
Docker Engine yêu cầu một số thư viện hệ thống để giao tiếp với kernel Linux, cụ thể là các gói để mở rộng kernel module và quản lý gói.
sudo apt-get install ca-certificates curl gnupg lsb-release
Kết quả mong đợi: Các gói dependency được cài đặt hoàn chỉnh mà không báo lỗi.
Thêm GPG Key của Docker
Để đảm bảo tính xác thực của các gói Docker khi cài đặt từ repository chính thức, chúng ta cần thêm khóa GPG (GNU Privacy Guard) của Docker vào hệ thống.
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Kết quả mong đợi: File khóa `docker.gpg` được tạo trong thư mục `/etc/apt/keyrings/` với quyền đọc cho tất cả user.
Cấu hình Repository Docker chính thức
Chúng ta sẽ chỉ định repository chính thức của Docker cho Ubuntu 24.04 (Noble) để hệ thống biết tải các gói Docker từ đâu.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Kết quả mong đợi: File cấu hình `docker.list` được tạo trong `/etc/apt/sources.list.d/` với đường dẫn repository chính xác cho bản Ubuntu 24.04.
Cài đặt Docker Engine
Sau khi cấu hình xong repository, ta cập nhật lại danh sách gói và cài đặt Docker Engine cùng các thành phần phụ trợ cần thiết.
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Kết quả mong đợi: Quá trình cài đặt hoàn tất, Docker Engine, CLI và Containerd đã sẵn sàng trên hệ thống.
Cấu hình Docker tự động khởi động (Systemd)
Docker Engine chạy như một service hệ thống (daemon). Mặc định, service này có thể chưa được kích hoạt để tự động chạy khi máy khởi động lại.
Chúng ta cần sử dụng `systemctl` để bật tính năng enable (tự động khởi động) và start (bắt đầu chạy ngay lập tức) cho service Docker.
sudo systemctl enable docker
sudo systemctl start docker
Kết quả mong đợi: Service `docker.service` được kích hoạt (enabled) và đang chạy (active).
Verify trạng thái Docker Service
Kiểm tra lại trạng thái của service để đảm bảo Docker đã chạy ổn định và không gặp lỗi khởi động.
sudo systemctl status docker
Kết quả mong đợi: Đầu ra hiện trạng thái active (running) và dòng enabled (nếu dùng `systemctl enable` đúng cách).
Cấu hình quyền truy cập không cần sudo
Đặc quyền của Docker daemon cho phép truy cập vào toàn bộ hệ thống. Mặc định, chỉ root mới có quyền chạy lệnh `docker`. Để phát triển thuận tiện, ta cần thêm user hiện tại vào nhóm `docker`.
Tạo nhóm `docker` nếu chưa tồn tại và thêm user hiện tại vào nhóm này.
sudo groupadd docker
sudo usermod -aG docker $USER
Kết quả mong đợi: User hiện tại đã được thêm vào nhóm `docker` mà không có lỗi.
Áp dụng quyền nhóm mới
Việc thêm user vào nhóm mới sẽ chỉ có hiệu lực sau khi đăng xuất và đăng nhập lại (re-login) hoặc reload session hiện tại. Ta dùng lệnh `newgrp` để áp dụng ngay lập tức mà không cần logout.
newgrp docker
Kết quả mong đợi: Prompt command line thay đổi (thường là màu sắc hoặc thêm nhóm docker vào thông tin user), xác nhận session mới đã áp dụng quyền nhóm.
Kiểm tra và xác nhận phiên bản Docker
Bước cuối cùng là xác minh toàn bộ môi trường đã được cài đặt đúng bằng cách kiểm tra phiên bản Docker Engine và thực thi một container mẫu.
Hiển thị phiên bản của Docker Engine và Docker Compose Plugin để xác nhận các gói đã cài đúng phiên bản mới nhất.
docker version
docker compose version
Kết quả mong đợi: Đầu ra hiển thị phiên bản Client và Server khớp nhau (ví dụ: 24.x.x), và thông tin về Docker Compose plugin.
Chạy container Hello World
Để chắc chắn rằng Docker Engine hoạt động thực tế (pull image và run container), ta chạy lệnh test tiêu chuẩn của Docker.
docker run hello-world
Kết quả mong đợi: Docker tự động tải image `hello-world`, tạo container, chạy và in ra đoạn thông báo thành công trên màn hình. Nếu thấy dòng Successfully pull image và Hello from Docker!, việc cài đặt hoàn tất.
Điều hướng series:
Mục lục: Series: Triển khai Database Object Storage với MinIO và Ubuntu 24.04
« Phần 1: Chuẩn bị môi trường Ubuntu 24.04 và yêu cầu hệ thống
Phần 3: Triển khai MinIO Single Node với Docker Compose »