我正在尝试使用Traefik的Katacoda游乐场负载平衡容器- https://www.katacoda.com/courses/traefik/deploy-load-balancer:
下面是教程中用于启动Traefik节点和2个测试容器的Docker组合脚本:
image: traefik
command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG
ports:
- "80:80"
- "8080:8080"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dev/null:/traefik.toml
machine:
image: katacoda/docker-http-server
labels:
- "traefik.backend=machine-echo"
- "traefik.frontend.rule=Host:machine-echo.example.com"
echo:
image: katacoda/docker-http-server:v2
labels:
- "traefik.backend=echo"
- "traefik.frontend.rule=Host:echo-echo.example.com"
我运行Docker-Compose命令,如教程中所示:
$ docker-compose up -d
Creating tutorial_traefik_1 ... done
Creating tutorial_echo_1 ... done
Creating tutorial_machine_1 ... done
然而,当我检查容器列表时,我可以看到只有2个容器被创建。没有创建Traefik容器:
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
35e87a3ff6ed katacoda/docker-http-server "/app" 11 seconds ago Up 9 seconds 80/tcp tutorial_machine_1
a455019d16be katacoda/docker-http-server:v2 "/app" 11 seconds ago Up 9 seconds 80/tcp tutorial_echo_1
下一步也失败了。这可能是因为Traefik容器没有运行:
$ curl -H Host:machine-echo.example.com http://host01
curl: (7) Failed to connect to host01 port 80: Connection refused
谁能复制这个教程,请让我知道这个错误的原因和修复?
今天就运行这个,你必须硬编码traefik版本到1.7.32
traefik:
image: traefik:1.7.32
command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG
ports:
- "80:80"
- "8080:8080"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dev/null:/traefik.toml
machine:
image: katacoda/docker-http-server
labels:
- "traefik.backend=machine-echo"
- "traefik.frontend.rule=Host:machine-echo.example.com"
echo:
image: katacoda/docker-http-server:v2
labels:
- "traefik.backend=echo"
- "traefik.frontend.rule=Host:echo-echo.example.com"