Table of Contents

Join CloudFly's Telegram channel to receive more offers and never miss any promotions from CloudFly

Hướng dẫn cài đặt và sử dụng Docker Compose trên Ubuntu 20.04

Posted on: July 17, 2025

description image

Giới thiệu về Docker Compose

Docker giúp đơn giản hóa quản lý các tiến trình ứng dụng trong container. Container tương tự như máy ảo nhưng nhẹ hơn và sử dụng tài nguyên hiệu quả hơn, cho phép phát triển các dịch vụ riêng biệt trong cùng một môi trường ứng dụng.

Với những ứng dụng phụ thuộc vào nhiều dịch vụ, việc phối hợp đồng thời nhiều container để khởi động, giao tiếp, và tắt cùng lúc có thể trở nên phức tạp. Docker Compose là công cụ cho phép chạy môi trường đa container dựa trên định nghĩa trong tệp YAML. Nó dùng các định nghĩa dịch vụ để tạo môi trường tùy chỉnh với nhiều container có thể chia sẻ mạng và volume dữ liệu.

Hướng dẫn này sẽ trình bày cách cài Docker Compose trên máy chủ Ubuntu 20.04 và cách bắt đầu sử dụng công cụ này.

Bước 1 — Cài đặt Docker Compose

Để đảm bảo bạn tải phiên bản ổn định mới nhất của Docker Compose, bạn sẽ tải phần mềm này từ kho Github chính thức.

Trước tiên, hãy xác nhận phiên bản mới nhất trên trang phát hành. Tại thời điểm viết bài, phiên bản hiện tại là 1.29.2.

Chạy lệnh dưới đây để tải phiên bản 1.29.2 và lưu file thực thi tại /usr/local/bin/docker-compose để truy cập toàn hệ thống:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Sau đó, đặt quyền thực thi cho file:

sudo chmod +x /usr/local/bin/docker-compose

Kiểm tra cài đặt thành công bằng lệnh:

docker-compose --version

Bạn sẽ thấy output tương tự:

docker-compose version 1.29.2, build 5becea4c

Bước 2 — Tạo file docker-compose.yml

Để minh họa, bạn sẽ tạo môi trường máy chủ web dùng image chính thức Nginx từ Docker Hub, container này phục vụ một trang HTML tĩnh.

Tạo thư mục mới trong thư mục home và chuyển vào thư mục đó:

mkdir ~/compose-demo
cd ~/compose-demo

Tạo thư mục ứng dụng làm gốc tài liệu của Nginx:

mkdir app

Dùng trình soạn thảo ưa thích tạo file index.html trong thư mục app:

nano app/index.html

Thêm nội dung sau vào file:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Docker Compose Demo</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/kognise/water.css@latest/dist/dark.min.css">
</head>
<body>

    <h1>This is a Docker Compose Demo Page.</h1>
    <p>This content is being served by an Nginx container.</p>

</body>
</html>

Lưu và đóng file (CTRL+X, rồi nhấn YENTER nếu dùng nano).

Tạo file docker-compose.yml:

nano docker-compose.yml

Thêm nội dung sau:

version: '3.7'
services:
  web:
    image: nginx:alpine
    ports:
      - "8000:80"
    volumes:
      - ./app:/usr/share/nginx/html

File này bắt đầu với định nghĩa version để Docker Compose biết cấu hình bạn dùng là phiên bản nào.

Kế đến là khối services, bạn tạo dịch vụ web sử dụng image nginx:alpine, ánh xạ cổng 8000 máy chủ tới cổng 80 container, nơi Nginx chạy.

volumes tạo volume chia sẻ giữa máy chủ và container, thư mục app trên máy chủ được chia sẻ tại /usr/share/nginx/html trong container để ghi đè thư mục gốc tài liệu của Nginx.

Lưu và đóng file.

Bước 3 — Chạy Docker Compose

Với file docker-compose.yml sẵn sàng, bạn có thể dừng môi trường bằng lệnh:

docker-compose up -d

Lệnh này sẽ tải các image cần thiết, tạo container cho dịch vụ web và chạy ở chế độ background.

Docker Compose sẽ kiểm tra image trong máy, nếu không có thì tải từ Docker Hub.

Để xem container có đang chạy không:

docker-compose ps

Lệnh này hiển thị trạng thái container và ánh xạ cổng.

Trỏ trình duyệt tới localhost:8000 (nếu chạy trên máy local) hoặc your_server_domain_or_IP:8000 (nếu trên server từ xa) để xem trang demo.

Thư mục app bạn chia sẻ giữ đồng bộ nội dung với container, nên khi chỉnh sửa index.html, container sẽ tự cập nhật và hiển thị trên trình duyệt khi bạn tải lại trang.

Bước 4 — Quản lý container với lệnh Docker Compose

  • Xem log container Nginx:
docker-compose logs
  • Tạm dừng container:
docker-compose pause
  • Tiếp tục container vừa tạm dừng:
docker-compose unpause
  • Dừng container (không xóa dữ liệu):
docker-compose stop
  • Gỡ bỏ container, mạng và volume:
docker-compose down
  • Để xóa cả image gốc (ví dụ nginx:alpine):
docker image rm nginx:alpine

Các lỗi thường gặp và cách khắc phục

  • Lỗi docker-compose: command not found: Lệnh không có trong PATH, có thể do cài chưa xong hoặc cấu hình sai. Bạn có thể chạy đầy đủ đường dẫn như:
/usr/local/bin/docker-compose
  • Lỗi quyền khi chạy Docker Compose: Người dùng không đủ quyền thực hiện lệnh Docker. Sử dụng sudo docker-compose hoặc thêm người dùng vào nhóm docker:
sudo usermod -aG docker $USER

Sau đó đăng xuất và đăng nhập lại để quyền có hiệu lực.

Kết luận

Bạn đã biết cách cài Docker Compose và tạo môi trường container dựa trên image máy chủ web Nginx cũng như quản lý môi trường này bằng lệnh Compose.

Xem tài liệu chính thức để biết đầy đủ các lệnh docker-compose. Nếu quý khách hàng gặp khó khăn hay có bất kì thắc mắc nào. Hãy liên hệ theo thông tin bên dưới.

Join CloudFly's Telegram channel to receive more offers and never miss any promotions from CloudFly
Share

0 replies