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. Tutorial i12bretro tách rõ xem trước, update và cleanup; tôi giữ đủ 10 bước nguồn thay vì biến thành một lệnh chạy nền không kiểm soát.1

Youtube video player

Video gốc đã được xác minh title/author bằng oEmbed và được nhúng trực tiếp.2

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


  1. i12bretro tutorial 0756 – Using WatchTower To Keep Docker Images Updated , revised 2025-02-23. Bài được biên tập độc lập từ numbered HTML page; các lệnh Docker được giữ nguyên. ↩︎ ↩︎

  2. YouTube – Using WatchTower To Keep Docker Images Updated — video của i12bretro, đã xác minh bằng oEmbed. ↩︎


0 Bình luận

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