Docker, Traefik · 5 min read · Feb 05, 2026

Руководство по Docker: Установка Traefik - современного обратного прокси для микросервисов

Traefik - это современный HTTP обратный прокси и балансировщик нагрузки для микросервисов. Traefik упрощает развертывание всех микросервисов, интегрируясь с существующими компонентами инфраструктуры, такими как Docker, Swarm Mode, Kubernetes, Amazon ECS, Rancher, Etcd, Consul и т.д.

Traefik служит маршрутизатором для всех ваших приложений микросервисов, направляя все клиентские запросы к правильному назначению микросервисов.

В этом руководстве я покажу вам шаг за шагом, как установить и настроить современный обратный прокси Traefik в виде контейнера Docker на Ubuntu 18.04 LTS (Bionic Beaver).

Предварительные требования

  • Ubuntu 18.04
  • Привилегии root

Что мы будем делать?

  1. Установить Docker на Ubuntu 18.04
  2. Установить Docker Compose
  3. Создать пользовательскую сеть Docker
  4. Установить и настроить Traefik
  5. Тестирование

Шаг 1 - Установить Docker на Ubuntu 18.04

Для этого руководства мы будем использовать последнюю версию 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’ автоматически обновит все репозитории.

Установка Docker на Ubuntu

Теперь установите последнюю версию docker-ce.

sudo apt install docker-ce

После завершения установки запустите службу Docker и включите ее для автоматического запуска при загрузке системы.

systemctl start docker  
systemctl enable docker

Сообщество Docker-Edition было установлено на систему Ubuntu 18.04, проверьте установленную версию Docker.

docker version

Проверка версии Docker

Дополнительно: Запуск Docker для пользователя без прав root

Контейнер Docker можно запускать от имени пользователя без прав root. Нам просто нужно добавить пользователя в группу Docker.

Добавьте пользователя ‘mohammad’.

useradd -m -s /bin/bash mohammad

Теперь добавьте пользователя ‘mohammad’ в группу Docker, затем перезапустите службу Docker.

usermod -a -G docker mohammad  
systemctl restart docker

Проверьте, запустив hello-world Docker.

docker run -it hello-world

И вот результат.

Запуск Docker для пользователя без прав root

Шаг 2 - Установить Docker Compose

Docker-Compose - это инструмент командной строки для определения и управления многоконтейнерными приложениями Docker.

Docker Compose - это скрипт на Python, его можно установить с помощью команды pip Python или с помощью команды apt из репозитория Ubuntu. С помощью Compose мы можем запускать несколько контейнеров Docker одной командой.

Установите Docker Compose из репозитория, используя команду apt ниже.

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

Теперь создайте новую пользовательскую сеть с именем ‘proxy’ для контейнера traefik.

docker network create proxy

И вы получите случайную строку имени контейнера сети. Проверьте снова доступные сети.

docker network ls

Ниже показан результат.

Создание пользовательской сети Docker

Пользовательская сеть Docker с именем ‘proxy’ для traefik была создана.

Шаг 4 - Установить и настроить обратный прокси Traefik

На этом шаге мы создадим контейнер traefik с включенным HTTPS letsencrypt (используя доменное имя ‘traefik.hakase-labs.io), и автоматически перенаправим HTTP на HTTPS на traefik.

Предварительная установка Traefik

Перед созданием всей конфигурации traefik нам нужно установить ‘apache2-utils’ для генерации зашифрованного пароля htpasswd и создания новой директории traefik.

Установите ‘apache2-utils’ с помощью команды apt ниже.

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’ и создайте новый файл конфигурации ‘traefik.toml’ с помощью редактора vim.

cd traefik/  
vim traefik.toml

Вставьте конфигурацию ниже.

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

#Define the EntryPoint for HTTP and HTTPS
defaultEntryPoints = ["https","http"]

#Enable Traefik Dashboard on port 8080
#with basic authentication method
#mohammad and password
[web]
address = ":8080"
[web.auth.basic]
users = ["mohammad:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi."]

#Define the HTTP port 80 and
#HTTPS port 443 EntryPoint
#Enable automatically redirect HTTP to HTTPS
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]

#Enable retry sending a request if the network error
[retry]

#Define Docker Backend Configuration
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "traefik.hakase-labs.io"
watch = true
exposedbydefault = false

#Letsencrypt Registration
#Define the Letsencrypt ACME HTTP challenge
[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

Сохраните и выйдите.

Примечание:

Вся информация о конфигурации находится в разделе комментариев ‘ #… ‘.

Создать скрипт Docker Compose для Traefik

Теперь создайте скрипт yml для docker-compose.

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’ на основе образа Docker ‘traefik:latest’.
  2. Контейнер ‘traefik’ будет работать в пользовательской сети Docker с именем ‘proxy’ и открывать внешние порты HTTP 80 и HTTPS 443.
  3. Контейнер будет монтировать конфигурацию traefik ‘traefik.toml’ и ‘acme.json’, включая файл docker.sock.
  4. Конфигурация меток для traefik, доменное имя фронтенда и порт traefik.

Конфигурация Letsencrypt ACME

Конфигурация acme в ‘traefik.toml’ используется для автоматической генерации 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

Современный HTTP обратный прокси Traefik был установлен в виде контейнера Docker на Ubuntu 18.04.

Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.