Hướng Dẫn Chi Tiết Cài Đặt Docker Và Docker Compose Trên Ubuntu
Chào mừng bạn đến với thế giới của container hóa! Trong kỷ nguyên phát triển ứng dụng hiện đại, Docker và Docker Compose đã trở thành những công cụ không thể thiếu. Chúng giúp các nhà phát triển và quản trị viên hệ thống dễ dàng xây dựng, triển khai và quản lý ứng dụng một cách hiệu quả, nhất quán trên mọi môi trường. Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết từng bước để cài đặt Docker và Docker Compose trên hệ điều hành Ubuntu.
1. Docker Và Docker Compose Là Gì?
Docker là một nền tảng mã nguồn mở giúp tự động hóa việc triển khai ứng dụng dưới dạng container. Container là các gói phần mềm nhẹ, độc lập, chứa mọi thứ cần thiết để ứng dụng chạy: code, runtime, thư viện, và cấu hình. Điều này đảm bảo ứng dụng của bạn hoạt động nhất quán dù ở môi trường phát triển, thử nghiệm hay sản xuất.
Docker Compose là công cụ để định nghĩa và chạy các ứng dụng Docker sử dụng nhiều container (multi-container). Thay vì quản lý từng container riêng lẻ, bạn có thể định nghĩa toàn bộ kiến trúc ứng dụng (ví dụ: web server, database, back-end) trong một tệp YAML
duy nhất, sau đó khởi động toàn bộ hệ thống chỉ bằng một lệnh đơn giản. Docker Compose lý tưởng cho môi trường phát triển, thử nghiệm và các ứng dụng microservice.
2. Chuẩn Bị Trước Khi Cài Đặt
Để bắt đầu, bạn cần một máy chủ Ubuntu (khuyến nghị các phiên bản LTS như 18.04, 20.04, 22.04). Bạn nên có quyền truy cập sudo
và kết nối SSH vào server của mình (qua PuTTY hoặc Terminal).
Đặc biệt quan trọng: Sau khi cài đặt, chúng ta sẽ thêm người dùng hiện tại vào nhóm docker
để bạn có thể chạy các lệnh Docker mà không cần sudo
. Hãy nhớ đăng xuất và đăng nhập lại hoặc khởi động lại shell sau khi thực hiện bước này.
3. Quy Trình Cài Đặt Docker Engine
Hãy bắt đầu bằng cách cập nhật hệ thống của bạn:
sudo apt update
sudo apt upgrade -y
Tiếp theo, cài đặt các gói cần thiết để Docker hoạt động với HTTPS và thiết lập kho lưu trữ chính thức:
sudo apt install ca-certificates curl gnupg lsb-release -y
Thêm GPG key chính thức của Docker:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Thiết lập kho lưu trữ Docker:
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
Cập nhật lại danh sách gói:
sudo apt update
Bây giờ, cài đặt Docker Engine và các plugin liên quan:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Để chạy Docker mà không cần sudo
, thêm người dùng của bạn vào nhóm docker
:
sudo usermod -aG docker $USER
Lưu ý quan trọng: Bạn cần đăng xuất và đăng nhập lại (hoặc khởi động lại phiên SSH) để thay đổi này có hiệu lực.
Kiểm tra cài đặt Docker:
docker run hello-world
Nếu bạn thấy thông báo xác nhận từ Docker, tức là quá trình cài đặt đã thành công!
4. Cài Đặt Docker Compose
Với các phiên bản Docker mới (sau 20.10), Docker Compose v2 được tích hợp như một plugin của Docker CLI và đã được cài đặt thông qua gói docker-compose-plugin
ở bước trên. Bạn sẽ sử dụng lệnh docker compose
(không có dấu gạch nối).
Để kiểm tra phiên bản Docker Compose của bạn:
docker compose version
Nếu bạn muốn sử dụng Docker Compose v1 (lệnh docker-compose
với dấu gạch nối) hoặc vì lý do tương thích, bạn có thể cài đặt thủ công:
- Xác định phiên bản ổn định mới nhất tại GitHub Docker Compose Releases.
- Tải xuống file thực thi (thay
<latest_version>
bằng phiên bản bạn chọn):sudo curl -L "https://github.com/docker/compose/releases/download/<latest_version>/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- Cấp quyền thực thi:
sudo chmod +x /usr/local/bin/docker-compose
- Kiểm tra cài đặt:
docker-compose --version
5. Hướng Dẫn Sử Dụng Docker Compose Cơ Bản (Ví Dụ)
Hãy tạo một ví dụ đơn giản với Nginx để hiểu cách Docker Compose hoạt động.
Tạo thư mục dự án và file index.html
:
mkdir my-nginx-app
cd my-nginx-app
echo "<h1>Xin chào Docker Compose!</h1><p>Trang web tĩnh đầu tiên của bạn.</p>" > index.html
Tạo file docker-compose.yml
với nội dung sau:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8000:80" # Ánh xạ cổng 8000 trên host đến cổng 80 của container
volumes:
- ./index.html:/usr/share/nginx/html/index.html # Ánh xạ file index.html
Triển khai ứng dụng:
docker compose up -d
Kiểm tra trạng thái các container:
docker compose ps
Bây giờ, bạn có thể truy cập trang web của mình qua trình duyệt bằng địa chỉ IP của server và cổng 8000 (ví dụ: http://your_server_IP:8000
). Nếu bạn thay đổi nội dung file index.html
, Nginx sẽ tự động cập nhật mà không cần khởi động lại container nhờ vào việc sử dụng volume
.
6. Quản Lý Môi Trường Docker Compose
Dưới đây là một số lệnh quản lý cơ bản:
docker compose up -d
: Khởi động hoặc tạo lại các service trong chế độ nền.docker compose stop
: Dừng các container nhưng không xóa chúng.docker compose down
: Dừng và xóa các container, mạng và volume ẩn.docker compose down --volumes --rmi all
: Dừng, xóa container, mạng, tất cả volume và cả các images được tạo bởi compose.docker compose logs
: Xem nhật ký (logs) của các service.
7. Kết Luận Và Hướng Mở Rộng
Bạn đã hoàn thành việc cài đặt Docker và Docker Compose trên Ubuntu, đồng thời biết cách triển khai một ứng dụng đơn giản. Đây là bước khởi đầu vững chắc để bạn bước vào thế giới container hóa.
Để nâng cao kỹ năng, bạn có thể tìm hiểu thêm về:
- Portainer: Giao diện web quản lý Docker dễ sử dụng.
- Triển khai các ứng dụng phức tạp hơn như WordPress với MySQL, GitLab.
- Sử dụng Reverse Proxy như Nginx Proxy Manager, Caddy, Traefik.
- Tích hợp Docker vào quy trình CI/CD.
Chúc bạn thành công trên hành trình khám phá Docker!