docker-registry

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Docker Registry Skill

Docker Registry Skill

Set up and manage private Docker registries for secure image distribution and management.
搭建并管理私有Docker镜像仓库,实现安全的镜像分发与管理。

Purpose

用途

Deploy private registries, configure authentication, and manage images across multiple registries.
部署私有镜像仓库、配置认证并跨多个仓库管理镜像。

Parameters

参数

ParameterTypeRequiredDefaultDescription
registry_typeenumNodockerdocker/ecr/gcr/acr
authbooleanNotrueEnable authentication
tlsbooleanNotrueEnable TLS
参数名类型必填默认值描述
registry_typeenumdockerdocker/ecr/gcr/acr
authbooleantrue启用认证
tlsbooleantrue启用TLS

Registry Types

镜像仓库类型

RegistryProviderAuth Method
Docker HubDockerUsername/token
GHCRGitHubGitHub token
ECRAWSIAM/CLI
GCRGoogleService account
ACRAzureService principal
镜像仓库服务商认证方式
Docker HubDocker用户名/令牌
GHCRGitHubGitHub令牌
ECRAWSIAM/CLI
GCRGoogle服务账号
ACRAzure服务主体

Private Registry Setup

私有镜像仓库搭建

Docker Compose

Docker Compose

yaml
services:
  registry:
    image: registry:2
    ports:
      - "5000:5000"
    volumes:
      - registry_data:/var/lib/registry
      - ./auth:/auth
      - ./certs:/certs
    environment:
      REGISTRY_AUTH: htpasswd
      REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
      REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
      REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
      REGISTRY_HTTP_TLS_KEY: /certs/domain.key
    restart: unless-stopped

volumes:
  registry_data:
yaml
services:
  registry:
    image: registry:2
    ports:
      - "5000:5000"
    volumes:
      - registry_data:/var/lib/registry
      - ./auth:/auth
      - ./certs:/certs
    environment:
      REGISTRY_AUTH: htpasswd
      REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
      REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
      REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
      REGISTRY_HTTP_TLS_KEY: /certs/domain.key
    restart: unless-stopped

volumes:
  registry_data:

Create Auth File

创建认证文件

bash
undefined
bash
undefined

Create htpasswd file

创建htpasswd文件

docker run --rm --entrypoint htpasswd
httpd:alpine -Bbn admin password > auth/htpasswd
undefined
docker run --rm --entrypoint htpasswd
httpd:alpine -Bbn admin password > auth/htpasswd
undefined

Registry Operations

镜像仓库操作

Login

登录

bash
undefined
bash
undefined

Docker Hub

Docker Hub

docker login
docker login

GitHub Container Registry

GitHub Container Registry

echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin

AWS ECR

AWS ECR

aws ecr get-login-password | docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com
aws ecr get-login-password | docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com

Private registry

私有镜像仓库

docker login registry.example.com
undefined
docker login registry.example.com
undefined

Push/Pull

推送/拉取

bash
undefined
bash
undefined

Tag for registry

为镜像仓库打标签

docker tag myapp:latest registry.example.com/myapp:latest
docker tag myapp:latest registry.example.com/myapp:latest

Push

推送镜像

docker push registry.example.com/myapp:latest
docker push registry.example.com/myapp:latest

Pull

拉取镜像

docker pull registry.example.com/myapp:latest
undefined
docker pull registry.example.com/myapp:latest
undefined

Image Management

镜像管理

bash
undefined
bash
undefined

List images in registry (API)

列出仓库中的镜像(API方式)

List tags

列出标签

Delete image (via API)

删除镜像(通过API)

undefined
undefined

Multi-Registry Sync

多仓库同步

bash
undefined
bash
undefined

Copy between registries

在仓库间复制镜像

skopeo copy
docker://source-registry/image:tag
docker://dest-registry/image:tag
skopeo copy
docker://source-registry/image:tag
docker://dest-registry/image:tag

Sync all tags

同步所有标签

skopeo sync --src docker --dest docker
source-registry/image dest-registry/
undefined
skopeo sync --src docker --dest docker
source-registry/image dest-registry/
undefined

Cloud Registry Setup

云镜像仓库搭建

AWS ECR

AWS ECR

bash
undefined
bash
undefined

Create repository

创建仓库

aws ecr create-repository --repository-name myapp
aws ecr create-repository --repository-name myapp

Login

登录

aws ecr get-login-password --region us-east-1 |
docker login --username AWS --password-stdin <account>.dkr.ecr.us-east-1.amazonaws.com
aws ecr get-login-password --region us-east-1 |
docker login --username AWS --password-stdin <account>.dkr.ecr.us-east-1.amazonaws.com

Push

推送镜像

docker push <account>.dkr.ecr.us-east-1.amazonaws.com/myapp:latest
undefined
docker push <account>.dkr.ecr.us-east-1.amazonaws.com/myapp:latest
undefined

Google GCR

Google GCR

bash
undefined
bash
undefined

Auth with service account

使用服务账号认证

gcloud auth configure-docker
gcloud auth configure-docker

Push

推送镜像

docker push gcr.io/project-id/myapp:latest
undefined
docker push gcr.io/project-id/myapp:latest
undefined

Error Handling

错误处理

Common Errors

常见错误

ErrorCauseSolution
unauthorized
Bad credentialsRe-login
manifest unknown
Image not foundCheck name/tag
denied: access
No permissionCheck IAM/roles
TLS handshake
Certificate issueAdd to trusted certs
错误信息原因解决方案
unauthorized
凭证无效重新登录
manifest unknown
镜像不存在检查名称/标签
denied: access
无权限检查IAM/角色配置
TLS handshake
证书问题添加至可信证书列表

Fallback Strategy

回退策略

  1. Verify credentials:
    docker login
  2. Check image exists in registry
  3. Verify network connectivity
  1. 验证凭证:执行
    docker login
  2. 检查镜像是否存在于仓库中
  3. 验证网络连通性

Troubleshooting

故障排查

Debug Checklist

调试检查清单

  • Logged in?
    docker login
  • Image tagged correctly?
  • Registry accessible?
    curl https://registry/v2/
  • TLS configured? Check certificates
  • 是否已登录?执行
    docker login
    验证
  • 镜像标签是否正确?
  • 仓库是否可访问?执行
    curl https://registry/v2/
    检查
  • TLS是否配置正确?检查证书

Usage

使用方式

Skill("docker-registry")
Skill("docker-registry")

Assets

相关资源

  • assets/docker-compose-registry.yaml
    - Registry setup
  • scripts/registry-setup.sh
    - Setup script
  • assets/docker-compose-registry.yaml
    - 镜像仓库搭建配置文件
  • scripts/registry-setup.sh
    - 搭建脚本

Related Skills

关联技能

  • docker-optimization
  • docker-ci-cd
  • docker-optimization
  • docker-ci-cd