如何在CentOS 8上通过Docker安装和使用Traefik作为反向代理

如何在CentOS 8上通过Docker安装和使用Traefik作为反向代理

Traefik是一个开放源代码HTTP反向代理和负载平衡器,可帮助您轻松部署微服务。 轻松与Docker,Kubernetes,Docker Swarm,Rancher和AWS等基础架构组件集成。 如果要在同一Docker主机上运行多个应用程序,则可以将Traefik用作反向代理,以将端口80和443公开给其他区域。

本教程显示了如何在CentOS 8上将Traefik安装和配置为反向代理。

先决条件

  • 运行CentOS的服务器8。
  • 指向服务器IP的有效域名。
  • 根密码是在服务器上设置的。

安装Docker和Docker Compose

首先,您需要在系统上安装最新版本的Docker和Docker Compose。 默认情况下,CentOS 8默认存储库中不提供Docker。 因此,您需要将Docker CE存储库添加到您的系统。 您可以使用以下命令添加它。

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

创建存储库后,使用以下命令安装Docker CE:

dnf install docker-ce --nobest -y

安装Docker之后,启动Docker服务,以便可以使用以下命令在系统重启时启动它:

systemctl start dockersystemctl enable docker

要安装Docker Compose,您需要安装Curl并将Docker Compose二进制文件下载到您的系统。 您可以使用以下命令运行它:

dnf install curlcurl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose

创建一个Docker网络

接下来,您需要创建一个新的Docker网络来运行traefik容器。 您可以通过运行以下命令以名称“ web”创建它:

docker network create web

然后使用以下命令检查网络:

docker network ls

您应该看到以下输出:

NETWORK ID          NAME                DRIVER              SCOPE
76a9475e5ab0        bridge              bridge              local
2a3d79f64747        host                host                local
4c9123229eaa        none                null                local
0b6e010b43d0        web                 bridge              local

安装和配置Traefik代理

在开始之前,您需要安装httpd-tools来生成加密的密码。 可以使用以下命令安装此工具:

dnf install httpd-tools -y

安装后,使用以下命令生成加密的密码:

htpasswd -nb admin my_password

您应该看到以下输出:

admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0

然后使用以下命令创建新的Traefik配置文件:

nano traefik.toml

添加以下行,其中包含有效的域名,受保护的密码和端口。

defaultEntryPoints = ["http", "https"]

[entryPoints]
  [entryPoints.dashboard]
    address = ":8080"
    [entryPoints.dashboard.auth]
      [entryPoints.dashboard.auth.basic]
        users = ["admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0"]
  [entryPoints.http]
    address = ":80"
      [entryPoints.http.redirect]
        entryPoint = "https"
  [entryPoints.https]
    address = ":443"
      [entryPoints.https.tls]

[api]
entrypoint="dashboard"

[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

[docker]
domain = "traefik.linuxbuz.com"
watch = true
network = "web"

完成后,保存文件并关闭它。 接下来,创建一个空文件来存储“让我们加密”信息。

touch acme.json

然后使用以下命令将此文件授予适当的权限:

chmod 600 acme.json

创建一个Docker创建文件

接下来,您需要创建一个新的docker-compose.yml文件来定义域,端口,网络和卷。

您可以使用以下命令创建它。

nano docker-compose.yml

添加以下行。

version: '3'

services:

  traefik:
    image: traefik:1.7.21-alpine
    command: --docker --docker.domain=linuxbuz.com
    ports:
      - 80:80
      - 443:443
    networks:
      - web
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/traefik.toml
      - ./acme.json:/acme.json
    labels:
      - "traefik.frontend.rule=Host:traefik.linuxbuz.com"
      - "traefik.port=8080"
    container_name: traefik
    restart: always

networks:
   web:
    external: true

完成后,保存文件并关闭它。 广告

构建Traefik Docker容器

至此,Traefik和Docker Compose配置文件已准备就绪。 现在,使用以下命令构建Traefik容器:

docker-compose up -d

您应该看到以下输出:

Unable to find image 'traefik:1.7.21-alpine' locally
1.7.21-alpine: Pulling from library/traefik
c9b1b535fdd9: Pull complete 
c141e361698e: Pull complete 
2573c02b6f16: Pull complete 
1619fb3841d1: Pull complete 
Digest: sha256:0e4ac8ae724603898620dbd5eb9cda7ec05f405d25476eb0d32b716b490ba079
Status: Downloaded newer image for traefik:1.7.21-alpine
27e735357bb3b7d2d253ff78ddf6e78896851420eff399e8ade23affc7ff0bf7

然后使用以下命令检查正在运行的容器:

docker ps

您应该看到以下输出:

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                                      NAMES
7604696507a5        traefik:1.7.21-alpine   "/entrypoint.sh --do…"   6 seconds ago       Up 4 seconds        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   traefik

访问Traefik Web界面

然后打开Web浏览器,并使用URL https://traefik.linuxbuz.com访问Traefik Web界面。 系统将提示您输入用户名和密码:Ads

输入先前生成的管理员用户名和密码, 按钮。 Traefik仪表板将显示在下一个屏幕上。

Traefik仪表板

请点击 健康 标签。 下一个屏幕显示Traefik容器的健康状态。

Traefik交通统计

结论

恭喜! Traefik代理已成功安装在CentOS 8上。 访问Traefik了解更多信息 文件资料..

Sidebar