0
0
Lập trình
NM

Tạo và Chạy Container Apache Tùy Chỉnh Trên Docker

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

• 4 phút đọc

Tạo và Chạy Container Apache Tùy Chỉnh Trên App Server 3

Trong bài viết này, chúng ta sẽ khám phá cách tạo và chạy một container Docker với Apache, một trong những máy chủ web phổ biến nhất. Chúng ta sẽ thực hiện bài tập này thông qua các bước cụ thể: tạo một Dockerfile, xây dựng một hình ảnh Docker tùy chỉnh từ nó và sau đó chạy một container từ hình ảnh đó. Dưới đây là hướng dẫn chi tiết cho từng bước.

Mục Lục

  1. Tạo Dockerfile
  2. Xây Dựng Hình Ảnh Docker
  3. Chạy Container Docker
  4. Thực Hành Tốt Nhất
  5. Lỗi Thường Gặp
  6. Mẹo Hiệu Suất
  7. Câu Hỏi Thường Gặp

Bước 1: Tạo Dockerfile

Đầu tiên, bạn cần tạo một Dockerfile với các yêu cầu đã chỉ định. Tệp này nên được đặt tên là Dockerfile (chữ D viết hoa) và nằm tại đường dẫn /opt/docker/Dockerfile.

  1. Di chuyển đến thư mục chính:

    Copy
    cd /opt/docker
  2. Mở tệp để chỉnh sửa bằng lệnh sudo vi:

    Copy
    sudo vi Dockerfile
  3. Thêm nội dung sau vào tệp. Đoạn mã này sử dụng ubuntu:24.04 làm hình ảnh cơ sở, cài đặt Apache2, thay đổi cổng nghe thành 5003, mở cổng và khởi động dịch vụ.

    Copy
    # Sử dụng ubuntu:24.04 làm hình ảnh cơ sở
    FROM ubuntu:24.04
    
    # Cài đặt apache2
    RUN apt-get update && \
        apt-get install -y apache2
    
    # Cấu hình Apache để nghe trên cổng 5003
    RUN sed -i 's/^Listen 80$/Listen 5003/' /etc/apache2/ports.conf
    
    # Mở cổng 5003
    EXPOSE 5003
    
    # Khởi động Apache trong chế độ nền
    CMD ["apache2ctl", "-D", "FOREGROUND"]

Bước 2: Xây Dựng Hình Ảnh Docker

Sau khi lưu Dockerfile, bạn có thể xây dựng hình ảnh. Quy trình này đọc các hướng dẫn từ Dockerfile và tạo ra một hình ảnh mới, có thể tái sử dụng.

  1. Từ thư mục /opt/docker, sử dụng lệnh docker build. Cờ -t gán nhãn cho hình ảnh với một tên, và dấu . chỉ định thư mục hiện tại làm ngữ cảnh xây dựng.

    Copy
    sudo docker build -t nautilus-apache .
  2. Đầu ra sẽ hiển thị quá trình xây dựng, bao gồm việc tải hình ảnh cơ sở, chạy từng lệnh trong Dockerfile, và cuối cùng là gán nhãn và xuất hình ảnh. Một quá trình xây dựng thành công sẽ được chỉ thị bằng trạng thái FINISHED.


Bước 3: Chạy Container Docker

Bước cuối cùng là chạy một container từ hình ảnh mới tạo.

  1. Sử dụng lệnh docker run với các cờ sau:

    • -d chạy container ở chế độ tách biệt, nghĩa là nó chạy ở chế độ nền.
    • -p 5003:5003 ánh xạ cổng 5003 trên máy chủ đến cổng 5003 bên trong container, giúp máy chủ Apache có thể truy cập được.
  2. Thực hiện lệnh:

    Copy
    sudo docker run -d -p 5003:5003 nautilus-apache
  3. Khi thành công, lệnh sẽ in một ID container dài, xác nhận rằng container đang chạy ở chế độ nền và sẵn sàng phục vụ yêu cầu trên cổng 5003.

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

  • Sử dụng phiên bản ổn định: Luôn chọn hình ảnh Docker từ các phiên bản ổn định để đảm bảo tính nhất quán và bảo mật.
  • Giữ Dockerfile gọn gàng: Tổ chức mã trong Dockerfile một cách rõ ràng và dễ hiểu để dễ bảo trì hơn.
  • Sử dụng các biến môi trường: Để dễ dàng cấu hình và thay đổi thông số mà không cần chỉnh sửa mã nguồn.

Lỗi Thường Gặp

  • Container không khởi động: Kiểm tra log hệ thống của container bằng cách sử dụng lệnh docker logs <container_id> để xác định nguyên nhân.
  • Cổng không mở: Đảm bảo rằng không có dịch vụ nào khác đang lắng nghe trên cổng 5003 trên máy chủ.

Mẹo Hiệu Suất

  • Giảm kích thước hình ảnh: Sử dụng các hình ảnh nhẹ hơn như alpine để giảm thời gian tải.
  • Sử dụng caching: Tận dụng caching trong Docker để tăng tốc quá trình xây dựng hình ảnh.

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

  • Tôi có thể sử dụng cổng khác không?
    Có, bạn chỉ cần thay đổi giá trị trong lệnh sed của Dockerfile và lệnh docker run.
  • Làm thế nào để kiểm tra Apache đang chạy?
    Bạn có thể sử dụng lệnh curl http://localhost:5003 để kiểm tra đáp ứng từ máy chủ.

Kết Luận

Trong bài viết này, chúng ta đã tìm hiểu cách tạo và chạy một container Apache tùy chỉnh trên Docker. Việc này không chỉ giúp bạn nắm vững kiến thức về Docker mà còn chuẩn bị cho bạn những kỹ năng cần thiết để triển khai ứng dụng web của mình một cách hiệu quả. Hãy thử nghiệm và áp dụng những gì bạn đã học được để phát triển dự án của riêng bạn! Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại để lại câu hỏi bên dưới!

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