Hub documentation
Hình ảnh Container
Hình ảnh Container
Container Images là một loại kho trên Hugging Face Hub dành cho các hình ảnh Docker và các hình ảnh OCI khác. Registry container của Hugging Face, cr.hf.co, lưu trữ các hình ảnh trên backend lưu trữ Xet. Hãy đẩy và kéo chúng bằng hf image, client được khuyến nghị; các client tiêu chuẩn như Docker, Podman, crane, skopeo, ORAS và Helm cũng hoạt động được.
Container Images đang trong giai đoạn beta riêng tư: liên hệ với chúng tôi để kích hoạt chúng cho tổ chức của bạn.
Tạo một kho
Truy cập huggingface.co/new-container và chọn tổ chức, tên và mức độ hiển thị. Hoặc sử dụng API:
curl -X POST https://huggingface.co/api/containers/my-org/my-app \
-H "Authorization: Bearer $HF_TOKEN" \
-H "Content-Type: application/json" \
-d '{"private": true}'Tạo kho trước khi đẩy: việc đẩy lên một kho không tồn tại sẽ thất bại với NAME_UNKNOWN. Trang của nó, https://huggingface.co/containers/my-org/my-app, liệt kê các tag của nó. Quyền kéo và đẩy tuân theo mức độ hiển thị của kho và vai trò của từng thành viên trong tổ chức.
Đẩy và Kéo với hf image
hf image, một phần mở rộng của CLI hf, chỉ chuyển các phần của mỗi lớp đã thay đổi kể từ phiên bản trước, mang lại trải nghiệm nhanh hơn so với các client OCI khác.
hf extensions install hf-image
hf auth login # or set HF_TOKEN
hf image build -t cr.hf.co/my-org/my-app:v2 . # optional: docker build works too
hf image push cr.hf.co/my-org/my-app:v2
hf image pull cr.hf.co/my-org/my-app:v2Công cụ này sử dụng User Access Token của bạn trên Hugging Face (read để kéo, write để đẩy) và yêu cầu Docker có containerd image store. Các image được đẩy bằng hf image có thể được kéo bởi bất kỳ client nào.
Vì hf image lưu các lớp ở dạng không nén, các ảnh được đẩy lên sẽ có digest khác so với khi dùng docker push. Để giữ nguyên digest của docker push, chẳng hạn cho chữ ký hoặc các triển khai được cố định theo digest, hãy dùng hf image push --preserve-digests. Cách này chậm hơn: các lớp đã thay đổi sẽ được đẩy và kéo về toàn bộ, giống như với docker push.
Sử dụng Docker và các trình khách OCI khác
Mặc dù chúng tôi khuyến nghị sử dụng hf image (xem phần trước) để tận dụng tối đa backend Xet, bạn cũng có thể tương tác với registry thông qua bất kỳ client OCI nào.
Đăng nhập bằng tên người dùng Hugging Face của bạn và một User Access Token làm mật khẩu: read để kéo, write để đẩy. Các hình ảnh công khai có thể được kéo mà không cần đăng nhập.
echo $HF_TOKEN | docker login cr.hf.co -u <username> --password-stdin
docker tag my-app cr.hf.co/my-org/my-app:v1
docker push cr.hf.co/my-org/my-app:v1
docker pull cr.hf.co/my-org/my-app:v1Các client OCI khác hoạt động theo cách tương tự. Helm thêm tên chart vào URL: helm push mychart-0.1.0.tgz oci://cr.hf.co/my-org sẽ đẩy lên my-org/mychart, và đường dẫn này phải tồn tại trước đó.
Xóa hình ảnh
Trên Hub, hãy xóa một thẻ bằng cách chọn Xóa thẻ này trong menu của thẻ đó, trên trang của hình ảnh hoặc thẻ. Với hf image, hãy xóa các thẻ của hình ảnh, sau đó xóa nó theo digest:
hf image untag cr.hf.co/my-org/my-app:v1 # prints the image's digest
hf image delete cr.hf.co/my-org/my-app@sha256:<digest>Nếu vẫn có thứ gì đó tham chiếu đến hình ảnh, chẳng hạn như một thẻ khác, thao tác xóa sẽ bị từ chối và liệt kê những gì cần xóa trước. Xóa một hình ảnh đa kiến trúc cũng sẽ xóa các hình ảnh nền tảng của nó.
Thu gom rác
Registry sẽ xóa các image không còn được tag nào trỏ đến, dù trực tiếp hay thông qua một image multi-arch, chẳng hạn như latest trước đó sau một lần push mới. Nó cũng xóa các layer không còn được image nào còn lại sử dụng. Để tiếp tục kéo image theo digest, hãy giữ một tag trên nó.
Hạn chế
- Tên tệp ảnh có dạng
cr.hf.co/<namespace>/<name>, viết thường. - Các lớp tối đa 100 GB, tệp manifest tối đa 4 MiB.
- Danh sách tag có thể mất vài giây để hiển thị một tag mới.