0

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ただし、すべてのリクエストはコンテナを通過します。何を変更すればよいですか?

4

1 に答える 1