Lesson 3 - Xây dựng Docker Image
15/02/2024 - 3 phút
Để xây dựng Docker Image một cách hiệu quả, việc hiểu rõ từng bước và áp dụng các kỹ thuật tối ưu hóa là rất quan trọng. Dưới đây là hướng dẫn chi tiết hơn với thêm ví dụ về cách tạo Dockerfile, xây dựng Image, tối ưu hóa và chia sẻ Docker Image.
Tạo Dockerfile:
Dockerfile
là một tập tin văn bản không có định dạng tên mở rộng, được sử dụng bởi Docker để tự động hóa quá trình xây dựng các hình ảnh Docker. Nó chứa một tập hợp các lệnh mà Docker sử dụng để thiết lập và cấu hình một hình ảnh. Khi bạn chạy lệnh docker build, Docker sẽ đọc các lệnh từ Dockerfile và thực thi chúng từng bước một để tạo ra một hình ảnh Docker mới.
1. Khởi tạo Dockerfile:
- Tạo một thư mục mới trên máy tính của bạn và gọi tên nó theo dự án, ví dụ
my-docker-app
. - Trong thư mục
my-docker-app
, tạo một file mới và đặt tên nó làDockerfile
. Đây sẽ là file mà bạn định nghĩa cách xây dựng Docker Image của mình.
2. Định nghĩa Image cơ sở:
- Mở
Dockerfile
bằng trình soạn thảo văn bản và bắt đầu bằng lệnhFROM
để chọn Image cơ sở. Ví dụ, nếu bạn muốn xây dựng một ứng dụng web sử dụng Python, bạn có thể bắt đầu với:Điều này sẽ sử dụng Python 3.8 trên Image Alpine Linux nhỏ gọn làm cơ sở của Docker Image của bạn.FROM python:3.8-alpine
3. Sao chép tệp và cài đặt phụ thuộc:
- Tiếp theo, sao chép các tệp cần thiết từ máy tính của bạn vào Image và cài đặt bất kỳ phụ thuộc nào. Đối với một ứng dụng Python, bạn có thể có:Điều này đặt
WORKDIR /app COPY . /app RUN pip install -r requirements.txt
/app
làm thư mục làm việc, sao chép tất cả tệp từ thư mục hiện tại vào/app
trong Image, và sau đó chạypip install
để cài đặt các gói cần thiết từrequirements.txt
.
4. Định nghĩa lệnh khởi động:
- Cuối cùng, định nghĩa lệnh mà Docker sẽ thực thi khi container khởi động:Điều này chỉ định rằng Docker nên chạy
CMD ["python", "app.py"]
app.py
với trình thông dịch Python.
Xây dựng Docker Image:
1. Xây dựng Image:
- Mở Terminal hoặc Command Prompt, di chuyển đến thư mục chứa
Dockerfile
của bạn và chạy:Lệnh này sẽ xây dựng Docker Image từdocker build -t my-python-app .
Dockerfile
của bạn với tagmy-python-app
.
2. Kiểm tra Image mới:
- Kiểm tra Image mới của bạn bằng lệnh:
docker images
Tối ưu hóa Docker Image:
1. Sử dụng Image Alpine:
- Image Alpine Linux nhỏ gọn là một lựa chọn tốt để giảm kích thước Image tổng thể, như đã đề cập ở trên.
- Gộp các lệnh
RUN
:
- Giảm số lượng lớp bằng cách gộp các lệnh
RUN
, ví dụ:RUN apk add --no-cache python py-pip && \ pip install -r requirements.txt
3. Loại bỏ cache và tệp tạm thời:
- Dọn dẹp sau khi cài đặt để loại bỏ cache và các tệp không cần thiết:
RUN apk add --no-cache python py-pip && \ pip install --no-cache-dir -r requirements.txt
Lưu trữ và Chia sẻ Image:
1. Đẩy lên Docker Hub:
- Đăng nhập vào Docker Hub từ Terminal bằng
docker login
. - Đẩy Image của bạn lên Docker Hub:
docker push my-username/my-python-app
2. Sử dụng kho lưu trữ riêng:
- Cấu hình kho lưu trữ riêng bằng cách sử dụng các dịch vụ như Docker Registry hoặc các giải pháp lưu trữ dựa trên cloud.
Bằng cách tuân thủ các bước và kỹ thuật tối ưu hóa này, bạn có thể xây dựng Docker Image hiệu quả và chia sẻ chúng với cộng đồng hoặc trong tổ chức của mình.