docker バックエンドでtraefikを使用しています。これが私がtraefikを始める方法です:
$ cat docker-compose.yml
version: '2'
networks:
default:
external:
name: proxy
services:
traefik:
image: traefik
command: --web --docker --docker.domain=docker --logLevel=WARNING
container_name: traefik
ports:
- "80:80"
- "8080:8080"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dev/null:/traefik.toml
labels:
- "traefik.frontend.rule=Host:dashboard.docker"
- "traefik.port=8080"
2 つのコンテナーが必要です。1 つはdocker registryで、もう 1 つはregistry の UI です。HTTP リクエストなどはすべてレジストリ コンテナーを通過するようにしたいのですregistry.docker/v2/*
が、その他のリクエスト ( registry.docker/
、registry.docker/repositories/20
、...) は UI コンテナーを通過します。
これが私が試したものです:
$ cat docker-compose.yml
version: '2'
networks:
default:
external:
name: proxy
services:
registry:
image: registry:2
container_name: registry
environment:
- REGISTRY_STORAGE_DELETE_ENABLED=true
labels:
- traefik.frontend.rule=Host:registry.docker, PathPrefix:/v2
- traefik.frontend.port=5000
registry-ui:
image: konradkleine/docker-registry-frontend:v2
container_name: registry-ui
environment:
- ENV_DOCKER_REGISTRY_HOST=registry.docker
- ENV_DOCKER_REGISTRY_PORT=80
- ENV_DOCKER_REGISTRY_USE_SSL=false
labels:
- traefik.frontend.rule=Host:registry.docker
registry
ただし、すべてのリクエストはコンテナを通過します。何を変更すればよいですか?