Dockerfile Hướng dẫn Chi tiết

Dockerfile là một tập lệnh bao gồm các lệnh và tham số được áp dụng cho một image cơ sở để cuối cùng tạo ra một image mới. Tên file bắt buộc phải là Dockerfile.

Nguồn gốc của Image

  • Tải từ registry từ xa (ví dụ: Docker Hub)
  • Tạo từ container đang chạy
  • Giải nén từ file .tar
  • Xây dựng từ Dockerfile: Đây là file văn bản chứa các lệnh để tạo image

Các lệnh phổ biến

  1. FROM image_name:tag – Xác định image cơ sở để xây dựng
  2. MAINTAINER lqz – Khai báo người tạo image
  3. ENV key value – Thiết lập biến môi trường (có thể có nhiều dòng). Ví dụ: ENV DB_PASSWORD lqz123. Có thể ghi đè khi chạy container với tham số -e DB_PASSWORD=xxxx
  4. RUN command – Là lệnh cốt lõi của Dockerfile (có thể có nhiều dòng). Đây là các lệnh Linux cần thực thi
  5. ADD host_path container_path – Sao chép file từ máy chủ vào container. Nếu là file nén, nó sẽ tự động được giải nén
  6. COPY host_path container_path – Sao chép file từ máy chủ vào container mà không giải nén
  7. WORKDIR path_dir – Thiết lập thư mục làm việc (khi vào container bằng docker exec, sẽ ở đường dẫn này)
  8. CMD command – Lệnh mặc định khi chạy container. Nếu có nhiều lệnh CMD, chỉ lệnh cuối cùng có hiệu lực. Lệnh này có thể bị ghi đè khi chạy container

Ví dụ 1: Tạo image Centos có cài Vim

Nội dung Dockerfile

FROM centos:7
MAINTAINER lqz
WORKDIR /home
RUN yum install -y vim
RUN mkdir lqz
ADD ./xx.txt ./yy.txt

Xây dựng image

docker build -t='centos_lqz_vim' .

Ví dụ 2: Tạo image cho ứng dụng Django và chạy

Các bước thực hiện

  1. Chuẩn bị ứng dụng Django (ví dụ: quản lý sách)
  2. Trong thư mục dự án, tạo Dockerfile với nội dung:
    FROM python:3.8
    MAINTAINER lqz
    WORKDIR /soft
    COPY ./requirements.txt /soft/requirements.txt
    RUN pip install -r requirements.txt -i https://pypi.doubanio.com/simple
    CMD ["python","manage.py","runserver","0.0.0.0:8080"]
  3. Đẩy code lên Git
  4. Trên máy triển khai, clone dự án về:
    git clone https://gitee.com/liuqingzheng/books.git
  5. Vào thư mục books và chạy lệnh xây dựng image:
    docker build -t='django_books' .
  6. Tạo container từ image vừa xây dựng:
    docker run -id --name=books -v /root/books:/soft -p 8080:8080 books_django:latest
  7. Từ trình duyệt Windows, truy cập vào địa chỉ máy ảo (VM) để xem ứng dụng
  8. Khi tiếp tục phát triển, sửa code và đẩy lên Git
  9. Trên máy triển khai, kéo code mới nhất về
  10. Nếu chỉ thay đổi code (không thay đổi phụ thuộc bên thứ ba), chỉ cần khởi động lại container. Nếu có thay đổi phụ thuộc, cần xây dựng lại image và chạy container mới

Thẻ: docker dockerfile python Django containerization

Đăng vào ngày 5 tháng 6 lúc 01:21