2017-08-17 68 views
0

我使用traefik和docker後端。這裏是我首發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個容器,一個是docker registry,和第二個是UI for the registry。我希望像registry.docker/v2/*這樣的所有HTTP請求都通過註冊表容器,但任何其他請求(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容器。我應該改變什麼?

回答

1

我認爲你有一個錯字這裏,根據我所擁有的文件,這裏是一個可能的解決方案

試試這個:

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 
+0

是的,我改變了',PathPrefix:用'/ v2'; PathPrefix:/ v2' – mykiwi

相關問題