一、创建Traefik和容器应用的连接网络
sudo docker network create traefik-net
二、下载Traefik样本配置文件
wget https://raw.githubusercontent.com/containous/traefik/master/traefik.sample.toml
三、编辑Traefik配置文件
sudo cp ./traefik.sample.toml ./traefik.toml
sudo vi ./traefik.toml
编辑traefik.toml文件内容:
debug = false
logLevel = "ERROR"
defaultEntryPoints = ["http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[retry]
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "docker.localhost"
watch = true
exposedByDefault = false
usebindportip = true
swarmMode = false
network = "traefik-net"
四、在主机上运行Traefik反向代理容器
Docker运行 Traefik 命令:
docker run -d \
--name traefik \
-p 8080:8080 \
-p 80:80 \
-v $PWD/traefik.toml:/etc/traefik/traefik.toml \
-v /var/run/docker.sock:/var/run/docker.sock \
traefik
五、运行Docker容器应用
运行 Docker 容器应用web1:
docker run -d \
--name nginx \
--label "traefik.backend=nginx" \
--label "traefik.protocol=http" \
--label "traefik.port=80" \
--label "traefik.docker.network=traefik-net" \
--label "traefik.domain=abc.com" \
--label "traefik.frontend.rule=Host:web1.abc.com" \
--label "traefik.enable=true" \
nginx
运行 Docker 容器应用web2:
docker run -d \
--name httpd \
--label "traefik.backend=httpd" \
--label "traefik.protocol=http" \
--label "traefik.port=80" \
--label "traefik.docker.network=traefik-net" \
--label "traefik.domain=abc.com" \
--label "traefik.frontend.rule=Host:web2.abc.com" \
--label "traefik.enable=true" \
httpd
六、配置客户端 hosts 主机文件,通过浏览器访问容器应用
修改 Win7 客户端电脑上 C:\Windows\System32\drivers\etc\hosts文件:
192.168.3.168 web1.abc.com
192.168.3.168 web2.abc.com
通过客户端电脑上的浏览器访问容器应用
http://web1.abc.com
http://web2.abc.com
七、查看Traefik管理后台
http://192.168.3.168:8080
注意事项:运行容器应用时,--label 中,等号左右不能有空格!
附图:
00-traefik.toml配置文件
01-运行 Traefik容器
02-运行 web1 和 web2 容器应用
03-运行中的容器
04-Traefik 管理后台
05-Traefik 管理后台2
06-通过web1.abc.com访问网站
07-通过web2.abc.com访问网站
参考链接:
https://docs.traefik.io/configuration/backends/docker/#docker