ایمیج‌های Docker و OCI

دریافت ایمیج از Docker Hub،‏ GHCR،‏ Quay،‏ Kubernetes و Microsoft بدون ورود به حساب.

منبع اصلی: Docker Hub, ghcr.io, quay.io, registry.k8s.io, mcr.microsoft.comدر حال بررسی…

نشانی‌ها

  • رجیستری (پیشوند مخصوص هر منبع)https://pkg.shecan.ir/v2/
پیشوندرجیستری اصلینمونهٔ نام ایمیج
dockerhub/Docker Hub (docker.io)pkg.shecan.ir/dockerhub/library/nginx:latest
ghcr/GitHub Container Registry (ghcr.io)pkg.shecan.ir/ghcr/OWNER/IMAGE:TAG
quay/Quay (quay.io)pkg.shecan.ir/quay/ORG/IMAGE:TAG
k8s/Kubernetes (registry.k8s.io)pkg.shecan.ir/k8s/pause:3.10
mcr/Microsoft (mcr.microsoft.com)pkg.shecan.ir/mcr/dotnet/runtime:8.0

Docker Hub

نام ایمیج را بعد از pkg.shecan.ir/dockerhub/ بنویسید.

ایمیج رسمیShell
docker pull pkg.shecan.ir/dockerhub/library/alpine:3.20
ایمیج یک کاربر یا سازمانShell
docker pull pkg.shecan.ir/dockerhub/curlimages/curl:8.10.1
در DockerfileDockerfileDockerfile
FROM pkg.shecan.ir/dockerhub/library/python:3.12-slim

GHCR،‏ Quay،‏ Kubernetes و Microsoft

هر رجیستری پیشوند خودش را دارد و مسیر بعد از آن همان مسیر رجیستری اصلی است.

GitHub Container Registry (ghcr.io)Shell
docker pull pkg.shecan.ir/ghcr/containerd/busybox:1.36
Quay (quay.io)Shell
docker pull pkg.shecan.ir/quay/prometheus/busybox:latest
Kubernetes (registry.k8s.io)Shell
docker pull pkg.shecan.ir/k8s/pause:3.10
Microsoft (mcr.microsoft.com)Shell
docker pull pkg.shecan.ir/mcr/dotnet/runtime-deps:8.0-alpine

میرور خودکار Docker Hub در Docker daemon

با این تنظیم،‏ docker pull nginx بدون تغییر نام ایمیج از میرور دریافت می‌شود. این قابلیت Docker فقط برای Docker Hub کار می‌کند؛ برای GHCR،‏ Quay و بقیه از پیشوندهای بالا استفاده کنید. اگر فایل daemon.json از قبل تنظیمات دیگری دارد،‏ فقط کلید registry-mirrors را به آن اضافه کنید.

۱. پشتیبان از تنظیمات فعلی (اگر فایل وجود دارد)Shell
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
۲. محتوای فایل /etc/docker/daemon.json/etc/docker/daemon.jsonJSON
{
  "registry-mirrors": ["https://pkg.shecan.ir"]
}
۳. اعمال تنظیماتShell
sudo systemctl restart docker

containerd و Kubernetes

برای containerd (از جمله نودهای Kubernetes) برای هر رجیستری یک فایل hosts.toml بسازید. containerd باید از مسیر /etc/containerd/certs.d استفاده کند (تنظیم config_path).

Docker Hub — فایل /etc/containerd/certs.d/docker.io/hosts.toml/etc/containerd/certs.d/docker.io/hosts.tomlTOML
server = "https://registry-1.docker.io"
[host."https://pkg.shecan.ir"]
  capabilities = ["pull", "resolve"]
GHCR — فایل /etc/containerd/certs.d/ghcr.io/hosts.toml (برای quay.io،‏ registry.k8s.io و mcr.microsoft.com به ترتیب از /v2/quay،‏ /v2/k8s و /v2/mcr استفاده کنید)/etc/containerd/certs.d/ghcr.io/hosts.tomlTOML
server = "https://ghcr.io"
[host."https://pkg.shecan.ir/v2/ghcr"]
  capabilities = ["pull", "resolve"]
  override_path = true

Podman و skopeo

فایل /etc/containers/registries.conf — Docker Hub از طریق میرور/etc/containers/registries.confTOML
[[registry]]
prefix = "docker.io"
location = "registry-1.docker.io"

[[registry.mirror]]
location = "pkg.shecan.ir"

نکته‌ها و محدودیت‌ها

  • فقط دریافت (pull) پشتیبانی می‌شود؛ docker login لازم نیست و push غیرفعال است.
  • ایمیج‌های رسمی Docker Hub با پیشوند library/ آدرس‌دهی می‌شوند؛ مثلاً nginx می‌شود dockerhub/library/nginx.
  • Docker Hub برای دریافت ناشناس محدودیت نرخ دارد. ایمیج‌هایی که قبلاً کش شده‌اند مشمول این محدودیت نیستند.

بازگشت به فهرست میرورها