CodeGym /Các khóa học /Docker SELF /Các thẻ và phiên bản của images

Các thẻ và phiên bản của images

Docker SELF
Mức độ , Bài học
Có sẵn

8.1 Tagging trong Docker

Tagging trong Docker là quá trình gắn label cho image, giúp việc quản lý phiên bản trở nên dễ dàng hơn. Điều này làm cho việc triển khai và cập nhật ứng dụng thuận tiện và dễ quản lý hơn. Trong bài giảng này, chúng ta sẽ tìm hiểu chi tiết về tag là gì, cách sử dụng chúng và những gợi ý giúp các bạn làm việc với chúng hiệu quả hơn.

Tag (tag) trong Docker — là label cho phép xác định phiên bản cụ thể của image. Các tag giúp việc theo dõi thay đổi dễ dàng hơn và lựa chọn các phiên bản cần thiết cho các môi trường khác nhau, như phát triển, kiểm thử và production.

Các khái niệm chính về tag:

  1. Duy nhất: tag xác định duy nhất một phiên bản cụ thể của image.
  2. Phiên bản: dùng tag để chỉ định phiên bản của image, ví dụ, v1.0, v2.0, latest.
  3. Linh hoạt: tag được sử dụng để tạo các image phù hợp với các giai đoạn phát triển cụ thể, như beta, stable, prod.

8.2 Làm thế nào để sử dụng tags

1. Gán tags khi build images

Bạn có thể gán tag cho image khi build nó bằng cách sử dụng tham số -t của lệnh docker build.

Ví dụ:

Trong ví dụ này, image được gán tên myapp và tag 1.0.

Terminal


docker build -t myapp:1.0 .

2. Gán thêm tags cho image hiện có

Bạn có thể thêm tags cho image hiện có bằng lệnh docker tag.

Ví dụ:

Ví dụ này gán thêm cho image myapp:1.0 với tag latest.

Terminal


docker tag myapp:1.0 myapp:latest

3. Sử dụng tags khi chạy containers

Khi bạn khởi động container, bạn có thể chỉ định tag cụ thể của image mà bạn muốn sử dụng.

Ví dụ:

Ví dụ này khởi động một container dựa trên image myapp với tag 1.0.

Terminal


docker run -d myapp:1.0

8.3 Thực hành gắn thẻ

Sử dụng Semantic Versioning

Semantic Versioning là một chuẩn gắn phiên bản giúp bạn hiểu mức độ thay đổi trong image.

Định dạng của Semantic Versioning:


<major>.<minor>.<patch>

Trong đó:

  • major: Thay đổi chính, không tương thích với các phiên bản trước đó.
  • minor: Tính năng mới, tương thích với các phiên bản trước đó.
  • patch: Sửa lỗi và các thay đổi nhỏ khác.

Ví dụ:

Terminal


docker build -t myapp:2.1.3 .

Sử dụng các nhãn bổ sung

Nhãn bổ sung giúp nhận diện trạng thái của image, ví dụ: beta, alpha, stable hoặc prod.

Ví dụ:

Terminal


docker build -t myapp:1.0-beta .
docker build -t myapp:1.0-stable .

Cập nhật thẻ

Khi cập nhật image, nên thay đổi thẻ để dễ dàng theo dõi các thay đổi. Thẻ latest thường được dùng để chỉ phiên bản mới nhất của image.

Ví dụ:

Terminal


docker build -t myapp:2.0 .
docker tag myapp:2.0 myapp:latest

8.4 Ví dụ sử dụng thẻ

Ví dụ sử dụng thẻ trong các môi trường khác nhau:

Ví dụ 1: Phát triển

Trong phát triển, thường sử dụng images với thẻ đại diện cho phiên bản hiện tại hoặc trạng thái phát triển, ví dụ như dev.

Terminal


docker build -t myapp:dev .
docker run -d myapp:dev

Ví dụ 2: Kiểm thử

Trong môi trường kiểm thử, sử dụng images với thẻ đại diện cho các phiên bản cụ thể hoặc trạng thái, như beta.

Terminal


docker build -t myapp:1.1-beta .
docker run -d myapp:1.1-beta

Ví dụ 3: Sản phẩm

Trong môi trường sản phẩm, điều quan trọng là sử dụng các phiên bản images ổn định và đã kiểm nghiệm, được đánh dấu bằng các thẻ như stable, prod, hoặc các phiên bản sematic, như 1.1.0-stable.

Terminal


docker build -t myapp:1.1.0-stable .
docker run -d myapp:1.1.0-stable

8.5 Thực hành tốt nhất

1. Luôn sử dụng semantic versioning

Hãy luôn tuân thủ semantic versioning cho tất cả các images. Điều này giúp bạn phân biệt rõ ràng các mức độ thay đổi và dễ dàng quản lý các phiên bản.

2. Sử dụng tags rõ ràng và có ý nghĩa

Sử dụng các tags phản ánh rõ trạng thái hoặc mục đích của image (ví dụ: beta, stable, prod).

3. Tránh sử dụng latest trong production

Tag latest có thể hữu dụng cho môi trường phát triển và kiểm tra, nhưng trong production hãy sử dụng các phiên bản cụ thể để tránh những thay đổi không mong muốn.

4. Ghi chú cách sử dụng các tags

Ghi chú lại cách và lý do sử dụng các tags trong dự án của bạn. Điều này giúp nhóm dễ hiểu hơn về quy trình versioning và giảm khả năng mắc lỗi.

Ví dụ Dockerfile với tags

Ví dụ 1: Tạo và gán tags

Dockerfile

# Dockerfile cho phiên bản 1.0.0 
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]

Các lệnh để build và gán tag

Terminal


docker build -t myapp:1.0.0 .
docker tag myapp:1.0.0 myapp:stable

Ví dụ 2: Cập nhật image và gán tag

Dockerfile

# Dockerfile cho phiên bản 1.1.0 với tính năng mới
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN rm -rf /app/tests /app/docs
ENV NODE_ENV=production
EXPOSE 3000
CMD ["node", "app.js"]

Các lệnh để build và gán tag

Terminal

        
docker build -t myapp:1.1.0 .
docker tag myapp:1.1.0 myapp:latest
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION