如何在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