Cách tự động hóa cập nhật vùng chứa Docker với

Cach tu dong hoa cap nhat vung chua Docker voi
Bình chọn post

[ad_1]

Tháp canh giải quyết vấn đề phổ biến về cách cập nhật vùng chứa Docker đang chạy khi hình ảnh mới phát hành. Tháp canh tự động “theo dõi” các vùng chứa của bạn, thăm dò định kỳ các phiên bản mới của hình ảnh và khởi động lại chúng để chúng chạy bản phát hành mới.

Trong bài viết này, chúng tôi sẽ hướng dẫn cách sử dụng Tháp Canh để đơn giản hóa việc quản lý đội tàu container của bạn. Chúng tôi cũng sẽ xem xét các tùy chọn nâng cao mà bạn có thể sử dụng để tùy chỉnh hành vi của Tháp Canh.

Bạn Đang Xem: Cách tự động hóa cập nhật vùng chứa Docker với

Triển khai Tháp canh

Bước đầu tiên là bắt đầu một phiên bản Tháp canh bên trong vùng chứa Docker của chính nó. Chạy lệnh sau để tải xuống hình ảnh Tháp Canh và tạo một vùng chứa:

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

Ổ cắm Docker của máy chủ của bạn được gắn vào hộp chứa Tháp canh với -v lá cờ. Điều này cho phép Tháp canh tương tác với phiên bản daemon Docker của máy chủ lưu trữ của bạn. Nó bắt buộc phải có để Tháp Canh có thể liệt kê và khởi động các thùng chứa.

Có thể sử dụng Tháp canh với máy chủ Docker từ xa. Phơi bày daemon Docker của máy chủ đó trên cổng TCP, sau đó khởi động Tháp canh bằng DOCKER_HOST biến môi trường thay vì liên kết ổ cắm:

$ docker run -d --name watchtower 
    -e DOCKER_HOST="tcp://192.168.0.1:2375" 
    containrrr/watchtower

Nếu máy chủ Docker của bạn được bảo vệ bằng TLS, hãy sử dụng Tháp Canh của --tlsverify gắn cờ và gắn các chứng chỉ của bạn vào vùng chứa /etc/ssl/docker danh mục:

$ docker run -d --name watchtower 
    -e DOCKER_HOST="tcp://192.168.0.1:2375" 
    -e DOCKER_CERT_PATH=/etc/ssl/docker
    -v ./certs:/etc/ssl/docker
    containrrr/watchtower --tlsverify

Tháp canh được thiết kế để chạy một lần cho mỗi máy chủ Docker. Khi một phiên bản Tháp Canh mới bắt đầu, nó sẽ dọn sạch mọi vật chứa Tháp Canh khác đã tồn tại. Bạn có thể chạy nhiều phiên bản bằng cách gán cho chúng từng phạm vi duy nhất nhưng điều này thường không cần thiết trong hầu hết các triển khai.

Sử dụng Tháp canh

Vùng chứa Tháp canh của bạn ngay lập tức bắt đầu giám sát các vùng chứa khác trên máy chủ Docker của bạn. Nó sẽ thăm dò ý kiến ​​cập nhật hình ảnh mỗi 24 giờ một lần và khởi động lại vùng chứa của bạn khi có thay đổi.

Vùng chứa mới giữ lại các tùy chọn tương tự như vùng chứa ban đầu mà chúng được tạo từ đó. Liên kết cổng, khối lượng gắn kết, biến môi trường và bất kỳ cài đặt nào khác đều sẽ nguyên vẹn khi thay thế.

Tháp Canh cũng nhận biết được sự phụ thuộc: khi các thùng chứa được liên kết với nhau, Tháp Canh sẽ dừng lại và bắt đầu chúng theo một thứ tự hợp lý. Các dịch vụ phụ thuộc vào một vùng chứa cụ thể sẽ bị dừng trước khi vùng chứa đó được cập nhật, sau đó được đưa trở lại sau khi vùng chứa thay thế có sẵn. Điều này đảm bảo các ứng dụng của bạn không gặp lỗi trong khi các phần phụ thuộc của chúng đang cập nhật.

Tháp canh gửi một SIGTERM báo hiệu cho vùng chứa khi nó cần chúng dừng lại để cập nhật. Bạn có thể thay đổi tín hiệu này bằng cách đặt nhãn trên vùng chứa của mình. Đây là cách chuyển sang SIGHUP thay vì SIGTERM:

$ docker run -d --label=com.centurylinklabs.watchtower.stop-signal=SIGHUP my-image

Loại trừ và Bao gồm các thùng chứa

Xem Thêm : Cách tìm email đã lưu trữ trong Gmail

Bạn có thể tùy chỉnh vùng chứa nào được giám sát bằng cách sử dụng kết hợp các đối số lệnh của Tháp canh và nhãn Docker trên các vùng chứa riêng lẻ của bạn. Dưới đây là một ví dụ về việc bắt đầu một thùng chứa được chọn không tham gia cập nhật Tháp Canh bằng cách sử dụng nhãn:

$ docker run -d --label=com.centurylinklabs.watchtower.enable=false my-image

Cũng có thể đưa vào danh sách trắng các vùng chứa cần được cập nhật, thay vì chọn bỏ những vùng không nên cập nhật. Khởi động Tháp Canh với --label-enable cờ để kích hoạt hành vi này:

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

Bây giờ, hãy sử dụng nhãn để chỉ định một số vùng chứa đủ điều kiện để nhận các bản cập nhật:

$ docker run -d --label=com.centurylinklabs.watchtower.enable=true my-image

Móc vòng đời

Tháp canh có thể chạy script tùy ý nội bộ vùng chứa của bạn khi các sự kiện cụ thể xảy ra. Bốn móc có sẵn:

  • pre-check – Trước khi Tháp Canh kiểm tra xem có bản cập nhật cho thùng chứa hay không.
  • pre-update – Sau khi tìm thấy bản cập nhật nhưng trước khi vùng chứa được khởi động lại.
  • post-update – Sau khi cập nhật xong.
  • post-check – Sau khi hoàn tất việc kiểm tra các bản cập nhật của vùng chứa.

Các móc được định cấu hình bằng cách sử dụng nhãn vùng chứa. Giá trị của nhãn cần phải là đường dẫn đến tệp thực thi bên trong hình ảnh vùng chứa. Điều này sẽ được gọi mỗi khi hook hoạt động.

Đây là một ví dụ về việc sử dụng pre-update cái móc:

$ docker run -d --label=com.centurylinklabs.watchtower.lifecycle.pre-update="/backup.sh --create" my-image

Các móc khác được cấu hình tương tự bằng cách thay thế tên của chúng vào nhãn.

Thông báo và Giám sát

Tháp canh có thể gửi cho bạn thông báo qua email, Slack, Microsoft Teams, Gotify và Shoutrrr khi có bản cập nhật vùng chứa. Mỗi cơ chế phân phối này cần được định cấu hình riêng bằng cách đặt các biến môi trường trong vùng chứa Tháp canh của bạn.

Đây là một ví dụ cơ bản sử dụng Gmail:

$ docker run -d --name watchtower 
    -e WATCHTOWER_NOTIFICATIONS=email
    -e WATCHTOWER_NOTIFICATION_EMAIL_FROM=you@gmail.com
    -e WATCHTOWER_NOTIFICATION_EMAIL_TO=you@gmail.com
    -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com
    -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587
    -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=you@gmail.com
    -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=your_gmail_app_password
    -v /var/run/docker.sock:/var/run/docker.sock 
    containrrr/watchtower

Tháp canh cũng hỗ trợ một chế độ hoạt động trong đó nó kiểm tra các bản cập nhật vùng chứa mà không cần áp dụng chúng. Bạn có thể sử dụng quyền này để được thông báo khi có bản cập nhật, sau đó tự khởi động lại vùng chứa của mình vào thời điểm thuận tiện.

Kích hoạt chế độ này với --monitor-only lá cờ:

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

Xem Thêm : Tải xuống và cập nhật trình điều khiển bộ điều hợp USB Bluetooth Zexmte

Ngoài ra còn có một nhãn có thể được đặt trên các thùng chứa riêng lẻ để chọn chúng vào chế độ giám sát:

$ docker run -d --label=com.centurylinklabs.watchtower.monitor-only=true my-image

Thay đổi khoảng thời gian thăm dò cập nhật

Tháp canh kiểm tra các hình ảnh mới sau mỗi 24 giờ. Khoảng thời gian này có thể được thay đổi với --interval cờ hoặc WATCHTOWER_POLL_INTERVAL biến môi trường. Nó chấp nhận một giá trị trong vài giây.

# Update every hour
$ docker run -d --name watchtower 
    -e WATCHTOWER_POLL_INTERVAL=3600
    -v /var/run/docker.sock:/var/run/docker.sock 
    containrrr/watchtower

Ngoài ra, bạn có thể xác định lịch biểu bỏ phiếu cố định bằng cú pháp cron. Điều này được chấp nhận là --schedule cờ hoặc WATCHTOWER_SCHEDULE biến môi trường.

# Update every five minutes
$ docker run -d --name watchtower 
    -e WATCHTOWER_SCHEDULE="*/5 * * * *"
    -v /var/run/docker.sock:/var/run/docker.sock 
    containrrr/watchtower

Làm sạch hình ảnh cũ

Tháp canh để lại phiên bản cũ của hình ảnh vùng chứa trên máy chủ của bạn sau khi một hình ảnh mới được kéo. Đặt --cleanup cờ hoặc WATCHTOWER_CLEANUP biến môi trường sẽ xóa hình ảnh cũ sau khi cập nhật. Điều này có thể giải phóng đáng kể dung lượng ổ đĩa theo thời gian.

$ docker run -d --name watchtower 
    -e WATCHTOWER_CLEANUP=true
    -v /var/run/docker.sock:/var/run/docker.sock 
    containrrr/watchtower

Chạy theo yêu cầu

Tháp canh được thiết kế để chạy như một daemon tồn tại lâu dài, liên tục giám sát các thùng chứa để cập nhật. Đôi khi bạn có thể muốn kiểm tra hình ảnh mới theo yêu cầu theo cách thủ công. Bạn có thể làm điều này với --run-once cờ lệnh:

$ docker run --rm 
    -v /var/run/docker.sock:/var/run/docker.sock 
    containrrr/watchtower --run-once

Thao tác này sẽ thực hiện một lần cập nhật duy nhất cho tất cả các vùng chứa đang chạy của bạn. Sau đó, thùng chứa Tháp Canh sẽ dừng lại và được gỡ bỏ.

Sử dụng sổ đăng ký cá nhân

Tháp canh cần thông tin chi tiết xác thực để kiểm tra cập nhật hình ảnh trong sổ đăng ký riêng tư. Một cách để cung cấp chúng là gắn Docker của bạn config.json nộp cho /config.json trong thùng chứa Tháp Canh của bạn:

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

Có một lưu ý với cách tiếp cận này: cập nhật lên config.json trên máy chủ của bạn sẽ không nhất thiết được phản ánh bên trong vùng chứa. Các lệnh như docker login thực sự thay thế tệp, thay vì trực tiếp chỉnh sửa nó. Điều này tạo ra một inode mới, phá vỡ liên kết Docker mount.

Một cách khác để cung cấp thông tin đăng ký cho Tháp Canh là REPO_USERREPO_PASS biến. Nó sẽ đăng nhập với tư cách là người dùng được xác định trước khi cố gắng lấy hình ảnh của bạn.

$ docker run -d --name watchtower 
    -e REPO_USER=demo-user
    -e REPO_PASS=users-password
    -v /var/run/docker.sock:/var/run/docker.sock 
    containrrr/watchtower

Sự kết luận

Tháp canh cho phép bạn tự động cập nhật vùng chứa Docker khi hình ảnh mới được đẩy vào sổ đăng ký. Đó là một hệ thống có thể tùy chỉnh cao, hỗ trợ danh sách đen vùng chứa và danh sách trắng, lập lịch nâng cao với cú pháp cron và thông báo được gửi đến một số nhà cung cấp phổ biến.

Các thông số cấu hình tùy chọn cho thấy nhiều chức năng hơn, chẳng hạn như khởi động lại lần lượt, cập nhật các vùng chứa khởi động lại và dừng cũng như hỗ trợ hiển thị các chỉ số cung cấp cho bạn một cách khác để trực quan hóa hoạt động cập nhật. Điều này làm cho Tháp Canh trở thành một lựa chọn tốt để quản lý một tập hợp các vùng chứa Docker sản xuất bận rộn.


[ad_2]

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

Bài viết liên quan

0903064855
chat-active-icon