Mục lục
Docker Compose là một công cụ cực kỳ hữu ích giúp bạn quản lý và chạy nhiều container Docker cùng lúc thông qua một file cấu hình duy nhất (docker-compose.yml
). Với Ubuntu 22.04 – một hệ điều hành phổ biến trên các máy chủ hiện nay – việc cài đặt và sử dụng Docker Compose sẽ giúp bạn triển khai các ứng dụng phức tạp một cách nhanh chóng, linh hoạt và dễ bảo trì.
Trong bài viết này, Zhost sẽ hướng dẫn bạn từng bước cách cài đặt Docker Compose trên hệ điều hành Ubuntu 22.04 bao gồm cách tạo file cấu hình, chạy dịch vụ, kiểm tra. Đây là kiến thức thiết yếu cho các DevOps, lập trình viên, và cả người quản trị hệ thống muốn tiết kiệm thời gian và tối ưu hiệu quả công việc.
Hướng dẫn thực hiện
Bước 1: Cài đặt Docker (nếu chưa có).
Trước tiên, bạn cần có có Docker trong VPS, nếu chưa có Docker trong VPS thì bạn hãy tham khảo tài liệu hướng dẫn cài đặt Docker cho VPS Ubuntu 22.04 dưới đây:
Bước 2: Cài đặt Docker Compose.
Để cài đặt Docker Compose cho VPS của bạn thì bạn hãy chạy câu lệnh dưới đây:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \ -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Bước 3: Kiểm tra phiên bản Docker Compose.
Kiểm tra phiên bản của Docker Compose bằng cách chạy câu lệnh dưới đây:
docker-compose --version
Bước 4: Cài đặt LEMP bằng Docker Compose.
Dưới đây tôi sẽ cấu trúc cơ bản cho bạn chạy LEMP (Linux – Nginx – MySQL – PHP).
docker-compose.yml
- Trước tiên, bạn cần tạo folder và file
docker-compose.yml
.
mkdir lemp-docker nano docker-compose.yml
- Dán đoạn mã bên dưới vào:
version: '3.8' services: web: image: nginx:latest container_name: nginx ports: - "8080:80" volumes: - ./www:/var/www/html - ./nginx/default.conf:/etc/nginx/conf.d/default.conf depends_on: - php php: build: ./php container_name: php volumes: - ./www:/var/www/html db: image: mysql:5.7 container_name: mysql restart: always environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: demo MYSQL_USER: demo MYSQL_PASSWORD: demopassword ports: - "3306:3306"
Lưu ý: Bạn cần thay đổi các thông tin trong đây phù hợp với nhu cầu của bạn để tăng bảo mật cho các dịch vụ.
- Lưu lại và thoát (
Ctrl+0
,Enter
, rồiCtrl+X
).
nginx/default.conf
- Tiếp đến, bạn cần tạo folder và file
nginx/default.conf
.
mkdir nginx nano nginx/default.conf
- Sau đó dán đoạn mã bên dưới vào:
server { listen 80; server_name localhost IP_VPS; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include fastcgi_params; fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; } }
Lưu ý: Thay IP_VPS
bằng VPS của bạn để có thể truy cập webserver.
- Lưu lại và thoát (
Ctrl+0
,Enter
, rồiCtrl+X
).
php/Dockerfile
- Tạo folder
php
và fileDockerfile
.
mkdir php nano php/Dockerfile
- Sau đó dán đoạn mã bên dưới vào:
FROM php:8.1-fpm RUN docker-php-ext-install mysqli pdo pdo_mysql
- Lưu lại và thoát (
Ctrl+0
,Enter
, rồiCtrl+X
).
www/index.php
- Tạo folder
www
và fileindex.php
.
mkdir www nano www/index.php
- Sau đó dán đoạn mã bên dưới vào:
<?php
phpinfo();
- Lưu lại và thoát (
Ctrl+0
,Enter
, rồiCtrl+X
).
Đây là cấu trúc thư mục lemp-docker
sau khi cấu hình:
Bước 5: Khởi chạy LEMP Stack.
- Để khởi chạy LEMP Stack thì bạn hãy chạy câu lệnh dưới đây tại thư mục
lemp-docker
:
docker-compose up -d
- Sau khi chạy hoàn tất thì sẽ hiển thị như ảnh bên dưới.
Bước 6: Kiểm tra.
- Sau đó, mở trình duyệt và truy cập:
http://IP_VPS:8080
Lúc này bạn sẽ thấy được trang phpinfo()
hiện ra, tức là Nginx + PHP hoạt động OK.
Bước 7: Gỡ cài đặt (nếu cần).
Nếu bạn muốn gỡ cài đặt Docker Compose thì bạn hãy chạy câu lệnh dưới đây:
sudo rm /usr/local/bin/docker-compose sudo rm /usr/bin/docker-compose
Kết luận
Qua hướng dẫn chi tiết từ Zhost, bạn đã nắm được cách cài đặt và sử dụng Docker Compose trên Ubuntu 22.04 để triển khai và quản lý nhiều container một cách đơn giản, hiệu quả. Với sức mạnh của Docker Compose, bạn có thể dễ dàng tổ chức, mở rộng và duy trì các ứng dụng phức tạp mà không cần phải thao tác thủ công từng container riêng lẻ. Nếu bạn đang tìm kiếm một giải pháp hiện đại để quản lý dịch vụ, Docker Compose chính là lựa chọn không thể thiếu. Chúc các bạn thành công!