启动:docker-compose up -d
启动两个whoami实例:docker-compose up -d --scale whoami=2
whoami地址:http://whoami.docker.localhost
web UI地址:http://localhost:8080
traefik API原始数据地址:http://localhost:8080/api/rawdata
Nginx地址:http://web.docker.localhost
启动:docker-compose up -d
启动两个whoami实例:docker-compose up -d --scale whoami=2
whoami地址:http://whoami.docker.localhost
web UI地址:http://localhost:8080
traefik API原始数据地址:http://localhost:8080/api/rawdata
Nginx地址:http://web.docker.localhost
| version: '3' | |
| services: | |
| gateway: | |
| # 官方最新的 traefik docker 镜像 | |
| image: traefik:latest | |
| # 停止后重新启动 | |
| restart: unless-stopped | |
| # 开启 traefik web UI 界面并监听 docker | |
| command: | |
| - --api.insecure=true | |
| - --providers.docker | |
| ports: | |
| # HTTP 端口 | |
| - "80:80" | |
| # Web UI 端口(通过 --api.insecure=true 开启) | |
| - "8080:8080" | |
| volumes: | |
| # 绑定 docker.sock 使 traefik 能够监听 docker 事件 | |
| - /var/run/docker.sock:/var/run/docker.sock | |
| whoami: | |
| image: containous/whoami | |
| # 通过 IP 地址或域名提供一个容器的服务 | |
| labels: | |
| - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" | |
| nginx: | |
| image: nginx:latest | |
| restart: unless-stopped | |
| # 绑定 web 文件目录和 nginx 配置目录 | |
| volumes: | |
| - ./web:/web:ro | |
| - ./config/nginx/vhost.conf:/etc/nginx/conf.d/vhost.conf | |
| # 解决 docker 容器中的 bash 前台执行外部命令时不接收 signal 的问题 | |
| command: "/bin/sh -c 'while :; do sleep 6h; nginx -s reload; done & exec nginx -g \"daemon off;\"'" | |
| # 通过 IP 地址或域名访问 | |
| labels: | |
| - "traefik.http.routers.nginx.rule=Host(`web.docker.localhost`)" |
| # Nginx静态文件服务器配置 | |
| server { | |
| server_name web.docker.localhost; | |
| root /web; | |
| } |