0
0
Lập trình
TT

Triển Khai Máy Chủ Web Container với Docker Compose

Đăng vào 7 tháng trước

• 4 phút đọc

Triển Khai Máy Chủ Web Container Bằng Docker Compose

Bài viết này sẽ hướng dẫn bạn cách triển khai một trang web tĩnh trong container bằng cách sử dụng Docker Compose trên App Server 1. Chúng ta sẽ khám phá quy trình tạo tệp docker-compose.yml để định nghĩa dịch vụ, xử lý lỗi command not found cho docker-compose, và cuối cùng là khởi động container.

Mục Lục

  1. Tạo Tệp Docker Compose
  2. Khắc Phục Lỗi Cài Đặt Docker Compose
  3. Triển Khai Container
  4. Thực Hành Tốt Nhất
  5. Cạm Bẫy Thường Gặp
  6. Mẹo Hiệu Suất
  7. Giải Quyết Vấn Đề
  8. Câu Hỏi Thường Gặp

Tạo Tệp Docker Compose

Bước đầu tiên là định nghĩa cấu hình của container bằng cách tạo tệp docker-compose.yml. Tệp này sẽ chỉ định hình ảnh sử dụng, tên container, ánh xạ cổng và gắn kết volume.

Nội dung sau đã được tạo trong tệp nằm tại /opt/docker/docker-compose.yml:

yaml Copy
version: '3'
services:
  webserver:
    image: httpd:latest
    container_name: httpd
    ports:
      - "8082:80"
    volumes:
      - "/opt/finance:/usr/local/apache2/htdocs"

Cấu hình này đảm bảo:

  • Hình ảnh httpd:latest được sử dụng.
  • Container được đặt tên là httpd.
  • Cổng máy chủ 8082 được ánh xạ tới cổng 80 của container.
  • Thư mục trên máy chủ /opt/finance được gắn kết làm volume tới thư mục /usr/local/apache2/htdocs của container, nơi lưu trữ nội dung web.

Khắc Phục Lỗi Cài Đặt Docker Compose

Một lần thử ban đầu để chạy lệnh đã dẫn đến lỗi sudo: docker-compose: command not found. Điều này cho thấy rằng công cụ Docker Compose chưa được cài đặt trên hệ thống. Để giải quyết vấn đề này, Docker Compose đã được cài đặt bằng cách tải xuống tệp nhị phân độc lập và cấp quyền thực thi.

bash Copy
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

Quá trình này đã cài đặt phiên bản mới nhất của Docker Compose vào vị trí hệ thống và cấp quyền cần thiết để chạy.

Triển Khai Container

Khi Docker Compose đã sẵn sàng, bước tiếp theo là chạy lệnh từ thư mục /opt/docker để khởi động container ở chế độ tách rời.

Lệnh:

bash Copy
docker compose up -d

Kết quả:

Copy
WARN[0000] /opt/docker/docker-compose.yml: thuộc tính `version` đã lỗi thời, nó sẽ bị bỏ qua, vui lòng xóa nó để tránh gây nhầm lẫn 
[+] Đang chạy 7/7
 ✔ webserver Đã kéo                                                          6.7s 
... (các lớp đã được kéo) ...
[+] Đang chạy 2/2
 ✔ Mạng docker_default  Đã tạo                                            0.5s 
 ✔ Container httpd         Đã khởi động                                        2.4s 

Lệnh đã thành công trong việc kéo hình ảnh httpd, tạo một mạng và khởi động container có tên httpd. Cảnh báo về thuộc tính version chỉ mang tính thông báo và không ảnh hưởng đến hoạt động của container.

Container httpd hiện đang chạy và phục vụ nội dung trang web tĩnh từ thư mục /opt/finance trên cổng 8082. Điều này hoàn thành nhiệm vụ lưu trữ nội dung tĩnh trên nền tảng container như yêu cầu của nhóm phát triển ứng dụng.

Thực Hành Tốt Nhất

  • Sử dụng các phiên bản ổn định: Hãy chắc chắn rằng bạn đang sử dụng các phiên bản ổn định của Docker và Docker Compose để tránh các lỗi không mong muốn.
  • Quản lý tài nguyên: Theo dõi tài nguyên sử dụng trên máy chủ để đảm bảo rằng container không chiếm quá nhiều tài nguyên.
  • Sao lưu dữ liệu: Đảm bảo bạn có các bản sao lưu định kỳ cho thư mục chứa dữ liệu quan trọng.

Cạm Bẫy Thường Gặp

  • Lỗi cổng bị chiếm: Nếu cổng bạn cố gắng ánh xạ đã được sử dụng bởi một dịch vụ khác, container sẽ không khởi động được.
  • Lỗi quyền truy cập: Đảm bảo rằng thư mục gắn kết có quyền phù hợp để Docker có thể truy cập.

Mẹo Hiệu Suất

  • Sử dụng mạng riêng: Thiết lập mạng riêng cho các container của bạn để cải thiện hiệu suất và bảo mật.
  • Giảm kích thước hình ảnh: Sử dụng các hình ảnh nhẹ hơn để giảm thời gian tải và sử dụng băng thông.

Giải Quyết Vấn Đề

  • Kiểm tra logs: Sử dụng lệnh docker logs <tên_container> để xem logs và tìm hiểu nguyên nhân gây ra sự cố.
  • Thử khởi động lại container: Đôi khi, khởi động lại container có thể giải quyết các vấn đề tạm thời.

Câu Hỏi Thường Gặp

1. Docker Compose là gì?
Docker Compose là công cụ cho phép bạn định nghĩa và chạy nhiều container Docker với nhau.

2. Có thể chạy nhiều dịch vụ trong một tệp docker-compose không?
Có, bạn có thể định nghĩa nhiều dịch vụ trong một tệp docker-compose.yml.

3. Làm thế nào để xóa container đã chạy?
Sử dụng lệnh docker compose down để dừng và xóa tất cả các container đã chạy.

4. Tôi có thể kiểm tra trạng thái của container không?
Có, sử dụng lệnh docker ps để kiểm tra trạng thái của tất cả các container đang chạy.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào