Điều kiện tiên quyết
- Một tài khoản Docker có quyền truy cập các repository cá nhân và tổ chức mà bạn muốn agent kiểm tra.
- Username Docker Hub của bạn: tên tài khoản, không phải địa chỉ email hay tên tổ chức.
- Với repository của tổ chức: một tài khoản Docker là thành viên của tổ chức đó. Dùng một tài khoản riêng cho CloudThinker để tách token khỏi thông tin đăng nhập của một cá nhân.
Thiết lập
1
Tạo personal access token
Trong Docker Home, chọn avatar, rồi Account settings → Personal access tokens (app.docker.com/settings/personal-access-tokens), và nhấn Generate new token. Đặt:
- Access token description:
cloudthinker - Expiration date: thời hạn phù hợp với chính sách xoay vòng của bạn
- Access permissions: Repo Read-only. Chỉ chọn Repo Read, Write, Delete nếu bạn muốn agent cập nhật mô tả repository (xem Quyền ghi).
2
Thêm kết nối
Mở More → Workspace settings → Connections, ở lại tab Builtin Connections và chọn Docker Hub. Điền:
- Docker Hub username: tài khoản đã tạo PAT, chẳng hạn
myuser. - Personal access token: PAT. Không phải mật khẩu Docker Hub.
Connected to Docker Hub namespace myuser (12 repositories).Chi tiết kết nối
Không có trường namespace. Namespace cá nhân chính là username của bạn, và agent tự phát hiện các namespace tổ chức từ token.
Quyền yêu cầu
Docker Hub từ chối cập nhật mô tả từ PAT Repo Read & Write, nên mức quyền đó không cho agent thêm gì.
Quyền ghi
Kết nối ở chế độ chỉ đọc khi bạn thêm vào. Để cho phép agent cập nhật mô tả repository:- Kết nối lại với PAT Repo Read, Write, Delete.
- Trong More → Workspace settings → Connections, chọn Docker Hub và bật công tắc Allow writes trên bảng chi tiết của kết nối.
Khả năng của agent
Đọc các con số theo cách Docker Hub báo cáo:
- Pulls là tổng từ trước đến nay. Chúng không thể hiện xu hướng hay đột biến.
- Sizes là kích thước layer đã nén, không phải dung lượng lưu trữ đã dùng hay mức chiếm dụng khi chạy.
- Days since last push chỉ là tuổi lần push. Docker Hub không báo cáo thứ gì đang chạy image, nên con số này không chứng minh được một repository không còn được dùng.
- Inactive là dấu hiệu riêng của Docker Hub cho việc không có push hoặc pull nào trong một tháng.
Xác minh kết nối
Ví dụ prompt
Khắc phục sự cố
Invalid Docker Hub username
Invalid Docker Hub username
Bạn đã nhập địa chỉ email hoặc tên tổ chức. Hãy nhập tên tài khoản đã tạo PAT.
Authentication failed
Authentication failed
PAT sai, đã hết hạn, bị vô hiệu hóa hoặc bị xóa. Tạo PAT mới và kết nối lại với cùng username.
Thiếu một namespace tổ chức
Thiếu một namespace tổ chức
Docker Hub từ chối một phần danh sách tổ chức đối với đăng nhập bằng PAT. Điều đó không có nghĩa là bạn không có tổ chức nào. Hãy yêu cầu agent kiểm tra namespace theo tên, chẳng hạn
acme, và xác nhận tài khoản của PAT là thành viên. Nếu thành công, agent sẽ liệt kê các repository của namespace đó.Không tìm thấy một repository private
Không tìm thấy một repository private
Kiểm tra tên đầy đủ,
NAMESPACE/NAME. Docker Hub cũng trả về “not found” khi tài khoản của PAT không đọc được một repository private.Cập nhật mô tả bị từ chối
Cập nhật mô tả bị từ chối
Kiểm tra ba điều theo thứ tự. Công tắc Allow writes trên bảng chi tiết của kết nối phải được bật. PAT phải là Repo Read, Write, Delete; PAT Repo Read & Write bị từ chối. Không được có Rule nào trong Approvals từ chối thao tác cập nhật.
429 rate limited
429 rate limited
Docker Hub đã giới hạn số request. Chờ vài phút, rồi hỏi về từng namespace hoặc repository một.
Bảo mật
- Quyền tối thiểu — chỉ cấp các quyền mà agent cần cho trường hợp sử dụng của bạn; bắt đầu với quyền chỉ đọc và mở rộng sau.
- Chỉ đọc theo mặc định — sử dụng thông tin xác thực chỉ đọc trừ khi bạn muốn agent thực hiện thay đổi qua kết nối này.
- Xoay vòng thông tin xác thực — xoay vòng khóa và token theo lịch trình thông thường của bạn; CloudThinker sẽ lấy giá trị mới khi bạn cập nhật kết nối.
- Thu hồi khi bàn giao — xóa thông tin xác thực tại nhà cung cấp khi bạn xóa một kết nối hoặc khi đồng nghiệp rời nhóm.
- Ưu tiên Repo Read-only: PAT Repo Read-only bao gồm mọi thao tác đọc. Ngay cả PAT Repo Read, Write, Delete cũng chỉ thay đổi được văn bản repository qua kết nối này.
- Rà soát PAT: đặt thời hạn và kiểm tra ngày dùng gần nhất trong Account settings → Personal access tokens. Vô hiệu hóa các token bạn không còn cần.
Liên quan
CircleCI
Trạng thái pipeline, log lỗi, test chập chờn và chạy lại có kiểm soát phê duyệt.
Tổng quan kết nối
Cách thông tin xác thực, Allow writes và Approvals phối hợp với nhau.