Dockerガイド · 2 min read · Feb 05, 2026

Dockerガイド: Traefikのインストール - マイクロサービスのためのモダンリバースプロキシ

Traefikは、マイクロサービスのためのモダンなHTTPリバースプロキシおよびロードバランサーです。Traefikは、Docker、Swarmモード、Kubernetes、Amazon ECS、Rancher、Etcd、Consulなどの既存のインフラストラクチャコンポーネントと統合されており、すべてのマイクロサービスのデプロイを簡単にします。

Traefikは、すべてのマイクロサービスアプリケーションのルーターとして機能し、すべてのクライアントリクエストを正しいマイクロサービスの宛先にルーティングします。

このチュートリアルでは、Ubuntu 18.04 LTS(Bionic Beaver)上でDockerコンテナとしてTraefikのモダンリバースプロキシをインストールおよび構成する方法をステップバイステップで示します。

前提条件

  • Ubuntu 18.04
  • ルート権限

何をするか?

  1. Ubuntu 18.04にDockerをインストール
  2. Docker Composeをインストール
  3. カスタムDockerネットワークを作成
  4. Traefikをインストールおよび構成
  5. テスト

ステップ1 - Ubuntu 18.04にDockerをインストール

このガイドでは、公式のDockerリポジトリからインストールできる最新のDockerバージョンを使用します。

以下のコマンドを使用して、Dockerのキーとリポジトリを追加します。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -  
sudo add-apt-repository \  
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \  
   $(lsb_release -cs) \  
   stable"

‘add-apt-repository’コマンドは、すべてのリポジトリを自動的に更新します。

UbuntuにDockerをインストール

次に、最新のdocker-ceをインストールします。

sudo apt install docker-ce

インストールが完了したら、Dockerサービスを開始し、システム起動時に毎回起動するように有効にします。

systemctl start docker  
systemctl enable docker

DockerコミュニティエディションがUbuntu 18.04システムにインストールされました。インストールされたDockerバージョンを確認します。

docker version

Dockerバージョンを確認

追加: 非ルートユーザーでDockerを実行

Dockerコンテナは、非ルートユーザーの下で実行できます。ユーザーをDockerグループに追加するだけです。

‘mohammad’ユーザーを追加します。

useradd -m -s /bin/bash mohammad

次に、’mohammad’ユーザーをDockerグループに追加し、Dockerサービスを再起動します。

usermod -a -G docker mohammad  
systemctl restart docker

Docker hello-worldを実行してテストします。

docker run -it hello-world

以下が結果です。

非ルートユーザーでDockerを実行

ステップ2 - Docker Composeをインストール

Docker-Composeは、マルチコンテナDockerアプリケーションを定義および管理するためのコマンドラインツールです。

Docker ComposeはPythonスクリプトであり、Python pipコマンドまたはUbuntuリポジトリからaptコマンドで簡単にインストールできます。Composeを使用すると、単一のコマンドで複数のDockerコンテナを実行できます。

以下のaptコマンドを使用してリポジトリからDocker Composeをインストールします。

sudo apt install docker-compose

インストールが完了したら、Docker Composeのバージョンを確認します。

docker-compose version

Docker Compose 1.17がUbuntu 18.04にインストールされました。

Docker Composeをインストール

ステップ3 - カスタムDockerネットワークを作成

このチュートリアルでは、TraefikコンテナはDockerカスタムネットワーク上で実行されます。したがって、サーバー上に新しいDockerカスタムネットワークを作成する必要があります。

システム上の利用可能なDockerネットワークを確認します。

docker network ls

次に、Traefikコンテナ用の’proxy’という名前の新しいカスタムネットワークを作成します。

docker network create proxy

すると、ネットワークコンテナ名のランダムな文字列が得られます。再度、利用可能なネットワークを確認します。

docker network ls

以下が結果です。

カスタムDockerネットワークを作成

Traefik用の’proxy’という名前のカスタムDockerネットワークが作成されました。

ステップ4 - Traefikリバースプロキシをインストールおよび構成

このステップでは、HTTPS letsencryptを有効にしたTraefikコンテナを作成します(ドメイン名は’traefik.hakase-labs.io’)、およびHTTPをHTTPSに自動的にリダイレクトします。

Traefikの事前インストール

すべてのTraefik設定を作成する前に、暗号化されたhtpasswdパスワードを生成し、新しいTraefikディレクトリを作成するために’apache2-utils’をインストールする必要があります。

以下のaptコマンドを使用して’apache2-utils’をインストールします。

sudo apt install apache2-utils -y

次に、以下のhtpasswdコマンドを実行して、Traefikダッシュボード認証用の新しいパスワードを生成します。

htpasswd -nb mohammad password

結果をメモしておきます。

mohammad:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.

Traefikリバースプロキシをインストールおよび構成

次に、’mohammad’ユーザーにログインします。

su - mohammad

すべてのTraefik設定用に’traefik’という名前の新しいディレクトリを作成します。

mkdir -p traefik/  
cd traefik/

Traefik設定の作成

‘traefik’ディレクトリに移動し、vimエディタを使用して新しい設定ファイル’traefik.toml’を作成します。

cd traefik/  
vim traefik.toml

以下の設定を貼り付けます。

#Traefik Global Configuration
debug = false
checkNewVersion = true
logLevel = "ERROR"

#HTTPとHTTPSのEntryPointを定義
defaultEntryPoints = ["https","http"]

#ポート8080でTraefikダッシュボードを有効にする
#基本認証方式を使用
#ユーザー名:mohammad、パスワード
[web]
address = ":8080"
[web.auth.basic]
users = ["mohammad:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi."]

#HTTPポート80と
#HTTPSポート443のEntryPointを定義
#HTTPをHTTPSに自動的にリダイレクトを有効にする
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]

#ネットワークエラーが発生した場合にリクエストを再送信を有効にする
[retry]

#Dockerバックエンド設定を定義
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "traefik.hakase-labs.io"
watch = true
exposedbydefault = false

#Letsencrypt登録
#Letsencrypt ACME HTTPチャレンジを定義
[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

保存して終了します。

注意:

設定に関するすべての情報は、コメントセクション’ #… ‘にあります。

Traefik Docker Composeスクリプトの作成

次に、docker-compose ymlスクリプトを作成します。

vim docker-compose.yml

以下の設定を貼り付けます。

version: '3'

services:

  traefik:
    image: traefik:latest
    command: --docker --docker.domain=hakase-labs.io
    ports:
      - 80:80
      - 443:443
    networks:
      - proxy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/traefik.toml
      - ./acme.json:/acme.json
    labels:
      - "traefik.frontend.rule=Host:traefik.hakase-labs.io"
      - "traefik.port=8080"
    container_name: traefik
    restart: always

networks:
  proxy:
    external: true

保存して終了します。

注意:

  1. ‘traefik:latest’ Dockerイメージに基づいて、新しいコンテナ’ traefik’を作成しています。
  2. ‘traefik’コンテナは、’proxy’という名前のカスタムDockerネットワーク上で実行され、外部ポートHTTP 80およびHTTPS 443を公開します。
  3. コンテナは、Traefik設定’ traefik.toml’および’acme.json’をマウントし、Dockerソックファイルも含まれます。
  4. Traefikのラベル設定、フロントエンドドメイン名、およびTraefikポート。

Letsencrypt ACME設定

‘traefik.toml’のacme設定は、SSL letsencryptを自動的に生成するために使用されます。また、ストレージファイル’acme.json’が必要です。

新しいJSONファイル’acme.json’を作成し、パーミッションを’600’に変更します。

touch acme.json  
chmod 600 acme.json

SSL letsencrypt情報に関するすべてのログは、このファイルに保存されます。

Traefikコンテナのビルド

これで、上記の設定ファイルを使用して独自のTraefikコンテナをビルドする準備が整いました。

cd traefik/  
ls -lah

すべての設定ファイル’traefik.toml’、’docker-compose.yml’、および’acme.json’。

Traefikコンテナをビルド

以下のDocker Composeコマンドを使用してコンテナをビルドします。

docker-compose up -d

完了したら、実行中のコンテナを確認します。

docker-compose ps

これで、Traefikコンテナが起動し、外部ポートHTTPおよびHTTPSを公開しています。

ステップ5 - テスト

ウェブブラウザを開き、アドレスバーにTraefikのドメイン名を入力します。私のは:

http://traefik.hakase-labs.io/

HTTPS接続にリダイレクトされ、ユーザー名とパスワードの認証を求められます。

ユーザー’mohammad’でログインし、パスワードは’password’です。

以下のようにTraefikダッシュボードが表示されます。

Traefikダッシュボード

Traefikのヘルスステータスページ。

Traefikヘルスステータスページ

TraefikのモダンなHTTPリバースプロキシが、Ubuntu 18.04上にDockerコンテナとしてインストールされました。

参考

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。