Private registry setup, image management, and multi-registry operations
Set up and manage private Docker registries with authentication and TLS. Use when configuring secure image distribution, logging into registries (Docker Hub, GHCR, ECR, GCR, ACR), or syncing images between registries.
/plugin marketplace add pluginagentmarketplace/custom-plugin-docker/plugin install pluginagentmarketplace-docker-container-assistant@pluginagentmarketplace/custom-plugin-dockerThis skill inherits all available tools. When active, it can use any tool Claude has access to.
assets/docker-compose-registry.yamlreferences/REGISTRY-GUIDE.mdscripts/registry-setup.shSet up and manage private Docker registries for secure image distribution and management.
Deploy private registries, configure authentication, and manage images across multiple registries.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| registry_type | enum | No | docker | docker/ecr/gcr/acr |
| auth | boolean | No | true | Enable authentication |
| tls | boolean | No | true | Enable TLS |
| Registry | Provider | Auth Method |
|---|---|---|
| Docker Hub | Docker | Username/token |
| GHCR | GitHub | GitHub token |
| ECR | AWS | IAM/CLI |
| GCR | Service account | |
| ACR | Azure | Service principal |
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 htpasswd file
docker run --rm --entrypoint htpasswd \
httpd:alpine -Bbn admin password > auth/htpasswd
# Docker Hub
docker login
# GitHub Container Registry
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
# AWS ECR
aws ecr get-login-password | docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com
# Private registry
docker login registry.example.com
# Tag for registry
docker tag myapp:latest registry.example.com/myapp:latest
# Push
docker push registry.example.com/myapp:latest
# Pull
docker pull registry.example.com/myapp:latest
# List images in registry (API)
curl -X GET https://registry.example.com/v2/_catalog
# List tags
curl -X GET https://registry.example.com/v2/myapp/tags/list
# Delete image (via API)
curl -X DELETE https://registry.example.com/v2/myapp/manifests/<digest>
# Copy between registries
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/
# Create repository
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
# Push
docker push <account>.dkr.ecr.us-east-1.amazonaws.com/myapp:latest
# Auth with service account
gcloud auth configure-docker
# Push
docker push gcr.io/project-id/myapp:latest
| Error | Cause | Solution |
|---|---|---|
unauthorized | Bad credentials | Re-login |
manifest unknown | Image not found | Check name/tag |
denied: access | No permission | Check IAM/roles |
TLS handshake | Certificate issue | Add to trusted certs |
docker logindocker logincurl https://registry/v2/Skill("docker-registry")
assets/docker-compose-registry.yaml - Registry setupscripts/registry-setup.sh - Setup scriptThis skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.