Cách tự động cập nhật vùng chứa Docker từ sổ đăng ký hình ảnh của bạn

Docker là một công cụ giúp bạn dễ dàng chạy các ứng dụng trong các vùng chứa di động. Một trong những lợi ích chính của việc container hóa là dễ dàng quản lý các bản cập nhật — tất cả những gì bạn cần làm là khởi động lại với một vùng chứa mới và có các công cụ có thể tự động hóa toàn bộ quy trình này.

CÓ LIÊN QUAN: Cách nâng cấp vùng chứa Docker để áp dụng cập nhật hình ảnh

Bạn Đang Xem: Cách tự động cập nhật vùng chứa Docker từ sổ đăng ký hình ảnh của bạn

Tự động triển khai các vùng chứa Docker

Docker là một lựa chọn tuyệt vời cho các đường ống tích hợp liên tục / triển khai liên tục (CI / CD) vì nó giúp tự động hóa cả hai bước của quy trình. Dockerfiles tự cung cấp một cách để xây dựng hình ảnh ứng dụng của bạn và việc thiết lập xây dựng vùng chứa tự động từ nguồn trên các dịch vụ như Github khá dễ dàng. Sau khi được xây dựng và được đẩy vào “sổ đăng ký hình ảnh”, nó sau đó có thể được tải xuống và chạy bởi bất kỳ máy chủ nào chạy Docker.

Điều này thật tuyệt, nhưng điều đó vẫn liên quan đến việc chạy các lệnh trên máy chủ mỗi khi bạn muốn cập nhật. Nếu bạn muốn nó thực sự tự động, thì bạn có thể quan tâm đến một công cụ có tên là Tháp Canh.

Tháp canh là một tiện ích chạy trên máy chủ Docker của bạn và kiểm tra định kỳ các bản cập nhật cho vùng chứa. Nếu nó phát hiện một phiên bản mới của hình ảnh từ sổ đăng ký vùng chứa, nó sẽ tự động hủy vùng chứa và khởi động lại nó ngay lập tức.

Đây là một tính năng rất hấp dẫn, nhưng trước khi bạn cài đặt nó, điều quan trọng là phải thảo luận về những mặt hạn chế. Thực hiện cập nhật hoàn toàn tự động có nghĩa là bạn sẽ có ít quyền kiểm soát hơn về thời gian và thử nghiệm trước khi triển khai, vì bất cứ khi nào cam kết trong kho lưu trữ của bạn đi qua và kích hoạt bản dựng, các vùng chứa đang chạy sẽ cập nhật. Nếu bạn không sở hữu hình ảnh đang được chạy, nó có thể cập nhật bất ngờ nếu bạn không loại trừ chúng khỏi Tháp Canh.

Nếu bạn không cập nhật hàng ngày, bạn có thể tốt hơn với Docker GUI như Portainer, cho phép bạn duyệt các vùng chứa đang chạy trên các máy chủ của mình và nhấp vào nút để cập nhật chúng tự động. Điều này cho phép bạn kiểm soát nhiều hơn quy trình và có thể giúp ngăn các cập nhật không mong muốn.

Xem Thêm : Microsoft cuối cùng cũng giải quyết được vấn đề lớn nhất của Windows App Store – Đánh giá Geek

Màn hình thông tin chi tiết về container của Portainer

Nếu bạn muốn bắt đầu sử dụng Portainer, bạn có thể đọc hướng dẫn của chúng tôi để thiết lập nó để tìm hiểu thêm.

CÓ LIÊN QUAN: Cách bắt đầu với Portainer, giao diện người dùng web cho Docker

Sử dụng Tháp canh

Tháp canh được đóng gói như một bộ chứa Docker, vì vậy nó khá dễ cài đặt — chỉ cần một lệnh là nó sẽ được thiết lập và chạy:

docker run -d 
--name watchtower 
-v /var/run/docker.sock:/var/run/docker.sock 
containrrr/watchtower

Điều này khởi chạy một hộp chứa Tháp canh và cũng tạo ra một liên kết gắn kết docker.sock từ máy chủ để nó có thể tương tác với API Docker. Theo mặc định, tính năng này sẽ quét tất cả các vùng chứa đang chạy để cập nhật 24 giờ một lần, có thể được thay đổi với --interval lá cờ.

Bạn cũng có thể tạo một docker-compose.yml nộp hồ sơ để bắt đầu Tháp Canh như một dịch vụ:

version: "3"
services:
  watchtower:
    image: containrrr/watchtower
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /root/.docker/config.json:/config.json
    command: --interval 300

“Tất cả các vùng chứa đang chạy” có thể bao gồm một số thứ bạn không muốn cập nhật bất ngờ, bao gồm cả hình ảnh từ Docker Hub mà bạn không có quyền kiểm soát. Bạn có thể loại trừ vùng chứa khỏi các bản cập nhật, nhưng chỉ bằng cách đặt nhãn trên vùng chứa đang được quét.

Xem Thêm : Khắc phục Menu Start trên Windows 11 bị lỗi ?

Bạn sẽ cần đặt cờ này trên dòng lệnh trong docker runhoặc chỉ định nó trong quy trình xây dựng của vùng chứa bằng cách sử dụng LABEL chỉ thị.

docker run -d --label=com.centurylinklabs.watchtower.enable=false nginx

LABEL com.centurylinklabs.watchtower.enable="false"

Bạn cũng có thể làm ngược lại, bằng cách chuyển --label-enable gắn cờ khi khởi động Tháp canh và đặt vùng chứa thành “true”.

Chạy Tháp Canh như một Dịch vụ Soạn thư Docker

Một phương pháp tốt hơn, đặc biệt là khi bạn chỉ cần chạy Tháp canh cho một thùng chứa duy nhất, là gói nó vào một thùng chứa hiện có docker-compose.yml và tạo một phạm vi cho Tháp Canh để quét. Trong ví dụ này, hình ảnh NGINX có phạm vi “nginx” và Tháp Canh được định cấu hình để chỉ cập nhật các vùng chứa có nhãn phạm vi đó.

version: '3'

services:
  nginx:
    image: nginx
    labels:
      - "com.centurylinklabs.watchtower.scope=nginx"

  watchtower:
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --interval 300 --scope nginx
    labels:
      - "com.centurylinklabs.watchtower.scope=nginx"

Nếu bạn chỉ sử dụng Tháp Canh theo cách này – được đóng gói thành một tệp soạn thảo có phạm vi — nó sẽ cho phép bạn chạy nhiều phiên bản. Tuy nhiên, nếu bạn chạy Tháp Canh mà không có phạm vi trên cùng một hệ thống, nó sẽ ghi đè các trường hợp này.

Sử dụng cơ quan đăng ký bên thứ ba

Theo mặc định, Tháp canh chỉ hoạt động với Docker Hub và bất kỳ cơ quan đăng ký công khai nào khác. Điều này loại trừ một số dịch vụ nhất định như Cơ quan đăng ký vùng chứa của Github, dịch vụ này yêu cầu tên người dùng và Mã truy cập cá nhân (PAT) để lấy hình ảnh từ đó.

Bạn có thể thêm cấu hình cho đăng ký riêng tư bằng cách tạo config.json tệp với nội dung sau:

và}#13;
    "auths": và}#13;
        "ghcr.io": và}#13;
            "auth": "credentials"
        }
    }
}

Giá trị “thông tin xác thực” phải được đặt thành chuỗi được mã hóa base64 của username:password kết hợp hoặc mã thông báo truy cập cá nhân trong trường hợp của Github.

echo -n 'username:password' | base64

Sau đó, khi bạn chạy Tháp Canh, hãy lắp thêm một giá đỡ cho việc này config.json tập tin.

docker run -d 
    -v config.json:/config.json
    -v /var/run/docker.sock:/var/run/docker.sock 
    containrrr/watchtower



Máy tính vàng

Nguồn: https://maytinhvang.com
Danh mục: TIN HỌC

Bài viết liên quan

0903064855
chat-active-icon