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
Что мы будем делать?
- Установить Docker на Ubuntu 18.04
- Установить Docker Compose
- Создать пользовательскую сеть Docker
- Установить и настроить Traefik
- Тестирование
Шаг 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-ce.
sudo apt install docker-ceПосле завершения установки запустите службу Docker и включите ее для автоматического запуска при загрузке системы.
systemctl start docker
systemctl enable dockerСообщество Docker-Edition было установлено на систему Ubuntu 18.04, проверьте установленную версию Docker.
docker version
Дополнительно: Запуск 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И вот результат.

Шаг 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 versionDocker Compose 1.17 был установлен на Ubuntu 18.04.

Шаг 3 - Создать пользовательскую сеть Docker
В этом руководстве контейнер traefik будет работать в пользовательской сети Docker. Поэтому нам нужно создать новую пользовательскую сеть Docker на сервере.
Проверьте доступные сети Docker на системе.
docker network lsТеперь создайте новую пользовательскую сеть с именем ‘proxy’ для контейнера traefik.
docker network create proxyИ вы получите случайную строку имени контейнера сети. Проверьте снова доступные сети.
docker network lsНиже показан результат.

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

Постройте контейнер, используя команду docker compose ниже.
docker-compose up -dКогда это завершится, проверьте запущенные контейнеры.
docker-compose psИ вы получите контейнер Traefik, работающий и открывающий внешние порты HTTP и HTTPS.
Шаг 5 - Тестирование
Откройте веб-браузер и введите доменное имя traefik в адресной строке. Мое:
http://traefik.hakase-labs.io/
Вы будете перенаправлены на HTTPS соединение и вам будет предложено ввести имя пользователя и пароль для аутентификации.
Войдите с пользователем ‘mohammad’ и паролем ‘password’.
И вы получите панель управления Traefik, как показано ниже.

Страница состояния здоровья Traefik.

Современный HTTP обратный прокси Traefik был установлен в виде контейнера Docker на Ubuntu 18.04.
Ссылки
Get new posts in your inbox
No spam. Unsubscribe anytime.