[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
Mục Lục Dịch vụ
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 : Nhận biết tiếng bíp của máy tính: 3 lần, hai lần, khi khởi động
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 : Các podcast hay nhất trên Spotify, Apple Podcast và Stitcher
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_USER
và REPO_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