GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS8でDockerを使用してリバースプロキシとしてTraefikをインストールして使用する方法

Traefikは、マイクロサービスを簡単にデプロイするのに役立つオープンソースのHTTPリバースプロキシおよびロードバランサーです。 Docker、Kubernetes、Docker Swarm、Rancher、AWSなどのインフラストラクチャコンポーネントと簡単に統合できます。同じDockerホストで複数のアプリケーションを実行する場合は、Traefikをリバースプロキシとして使用して、ポート80と443を他の地域に公開できます。

このチュートリアルでは、CentOS8にリバースプロキシとしてTraefikをインストールして構成する方法を示します。

前提条件
  • CentOS8を実行しているサーバー。
  • サーバーIPで指定された有効なドメイン名。
  • ルートパスワードがサーバーに設定されます。

DockerとDockerComposeをインストールする

まず、システムに最新バージョンのDockerとDockerComposeをインストールする必要があります。デフォルトでは、DockerはCentOS8のデフォルトリポジトリでは使用できません。そのため、システムにDockerCEリポジトリを追加する必要があります。次のコマンドで追加できます:

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

リポジトリが作成されたら、次のコマンドを使用してDockerCEをインストールします。

dnf install docker-ce --nobest -y

Dockerがインストールされたら、Dockerサービスを開始し、次のコマンドを使用してシステムの再起動時に開始できるようにします。

systemctl start docker
systemctl enable docker

Docker Composeをインストールするには、Curlをインストールし、システムにDockerComposeバイナリをダウンロードする必要があります。次のコマンドで実行できます:

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

Dockerネットワークを作成する

次に、traefikコンテナを実行するための新しいDockerネットワークを作成する必要があります。次のコマンドを実行して、「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"

終了したら、ファイルを保存して閉じます。次に、Let’sEncryptの情報を保存するための空のファイルを作成します。

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

終了したら、ファイルを保存して閉じます。

TraefikDockerコンテナをビルドする

この時点で、TraefikとDockerComposeの構成ファイルの準備ができています。次に、次のコマンドを使用して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
アクセスTraefikWebインターフェイス

次に、Webブラウザーを開き、URLhttps://traefik.linuxbuz.comを使用してTraefikWebインターフェースにアクセスします。ユーザー名とパスワードの入力を求められます:

以前に生成した管理者としてのユーザー名とパスワードを入力し、署名をクリックします ボタン。次の画面にTraefikダッシュボードが表示されます。

健康をクリックします タブ。次の画面にTraefikコンテナのヘルスステータスが表示されます。

結論

おめでとう! CentOS 8にTraefikプロキシが正常にインストールされました。詳細については、Traefikのドキュメントを参照してください。


Cent OS
  1. CentOSにDockerComposeをインストールして使用する方法

  2. リバースプロキシとしてNginxを使用してCentOS8にFlectraをインストールする方法

  3. リバースプロキシとしてNginxを使用してCentOS8にOdoo14をインストールする方法

  1. CentOS7にDockerをインストールして使用する方法

  2. リバースプロキシとしてNginxを使用してCentOS7にOdoo11をインストールする方法

  3. リバースプロキシとしてNginxを使用してCentOS7にOdoo10をインストールする方法

  1. CentOS7にDockerComposeをインストールして使用する方法

  2. CentOS8にCurlをインストールして使用する方法

  3. Dockerをインストールして使用する方法-CentOS7で作成する