Bookmark

Cập nhật Docker image có kiểm soát bằng Watchtower: xem trước, cleanup và container stopped

Watchtower theo dõi Docker container và phát hiện image gốc đã thay đổi, sau đó có thể khởi động lại container với image mới. Hãy xem trước thay đổi, chạy update có kiểm soát và cleanup sau khi xác nhận container hoạt động.1

Youtube video player

1. Pull image Watchtower

Bước 1/10: Đăng nhập Docker host.

Bước 2/10: Chạy lệnh pull:

1
docker pull containrrr/watchtower

2. Chỉ kiểm tra update, chưa áp dụng

Bước 3/10: Đăng nhập Docker host.

Bước 4/10: Chạy Watchtower một lần ở chế độ monitor-only, gồm container restarting và stopped:

1
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once --monitor-only --include-restarting --include-stopped

Lệnh này cần quyền đọc Docker socket; output là danh sách/hoạt động kiểm tra của Watchtower. Đây là bước tôi chạy trước để biết image nào sẽ bị tác động.

3. Cập nhật container đang chạy

Bước 5/10: Đăng nhập Docker host.

Bước 6/10: Chạy update một lần:

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

4. Cập nhật và xóa image cũ của container đang chạy

Bước 7/10: Đăng nhập Docker host.

Bước 8/10: Chạy cleanup:

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

--cleanup là hành động xóa image cũ; vì vậy tôi kiểm tra tag, volume và rollback trước khi dùng.

5. Cập nhật tất cả container, gồm restarting/stopped, rồi cleanup

Bước 9/10: Đăng nhập Docker host.

Bước 10/10: Chạy lệnh đầy đủ:

1
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once --cleanup --include-restarting --include-stopped

Đây là bước có phạm vi rộng nhất trong tutorial. Tôi không chuyển thẳng nó thành cron nếu chưa có backup và danh sách container loại trừ; Docker socket tương đương quyền quản trị cao trên host.

6. Notifications và kiểm tra

Nguồn có liên kết riêng về cấu hình notification bằng environment variables. Tôi đọc tài liệu Watchtower tương ứng trước khi bật, không ghi webhook/token vào compose hoặc Markdown public.1

Sau mỗi lần chạy:

1
2
3
docker ps
docker image ls
docker logs <container-name>

Kiểm tra ứng dụng, volume persistent và log migration trước khi xóa image cũ. Tutorial chỉ đưa các lệnh one-shot, không mô tả chính sách lịch chạy, retention hay rollback tự động; những phần đó cần thiết kế riêng cho HomeLab.

Kết luận

Watchtower có bốn hành vi rõ ràng trong 10 bước: pull image, monitor-only, update, update+cleanup, và phiên bản cuối bao gồm container restarting/stopped. Tôi bắt đầu bằng monitor-only, chỉ cleanup sau khi xác nhận app hoạt động, và giữ Docker socket trong phạm vi host tin cậy.

Nguồn


0 Bình luận

Góp Ý / Bình Luận / Đánh giá