跳到主要内容

Traefik

参考链接 https://hexo.aufomm.com/2021/01/04/a-complete-guide-of-using-ssl-server-certificate-with-traefik-on-docker/

curl -H Host:whoami.docker.localhost http://127.0.0.1 创建配置文件

[root@es003 config]# cat /apps/config/traefik.toml
# traefik.toml

[global]
checkNewVersion = true
sendAnonymousUsage = false

[api]
dashboard = true
insecure=true
debug=true

[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.https]
address = ":443"

[http.routers.service-demo]
rule = "Host(`zlqit.com`)"
service = "service-demo"
# [http.routers.service-demo.tls] # 如果需要使用TLS/SSL,请添加此部分配置
# certResolver = "my-cert-resolver"


[http.services.service-demo]
[http.services.service-demo.loadBalancer]
[[http.services.service-demo.loadBalancer.servers]]
url = "http://service-demo:80"



[providers]
[providers.docker]
endpoint = "unix:///var/run/docker.sock"
swarmMode = true
exposedByDefault = false
network = "traefik-public"

[certificatesResolvers.default]
[certificatesResolvers.default.acme]
email = "ilync@zlqit.com"
storage = "acme.json"
[certificatesResolvers.default.acme.httpChallenge]
entryPoint = "web"


1. 创建traefik应用

创建 traefik

  docker service create   --name traefik \
--constraint=node.role==manager \
--publish 80:80 --publish 8080:8080 --publish 443:443 \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--mount type=bind,source=/apps/config/traefik.toml,target=/traefik.toml \
--network traefik-public traefik:v2.3.4 \
--configFile=/traefik.toml

2.创建 server-demo 应用

docker service create \
--name service-demo \
--network traefik-public \
--label "traefik.enable=true" \
--label "traefik.http.services.service-demo.loadbalancer.server.port=80" \
--label "traefik.http.routers.service-demo.entrypoints=http" \
--label "traefik.http.routers.service-demo.rule=Host(\"service-demo.zlqit.com\")" \
nginx:latest

//查看日志状态(这条命令必须在docker swarm leader端执行) //docker service logs -f service-demo