Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Здравейте приятели! Ако търсите начин да управлявате вашите Docker контейнери с елегантен reverse proxy, то Traefik е точно това, което ви трябва. В тази статия ще ви покажа стъпка по стъпка как да го инсталирате на Ubuntu 24.04.
Traefik е модерен HTTP reverse proxy и load balancer. Той автоматично открива вашите услуги и конфигурира рутирането за тях.
Основните предимства на Traefik:
Аз лично предпочитам Nginx Proxy Manager (NPM), което е лесен за употреба инструмент с графичен интерфейс, докато Traefik е по-мощен и автоматизиран, особено когато се използва в среда с много контейнери и динамично разрастване.
Преди да започнем, уверете се че имате:
Първо трябва да инсталираме Docker. Отворете терминала и изпълнете следните команди:
# 1. Обновяване на системата
sudo apt update && sudo apt upgrade -y
# 2. Инсталиране на зависимости
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
# 3. Добавяне на Docker GPG ключ
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 4. Добавяне на Docker репозиториото
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 5. Обновяване на списъка и инсталиране на Docker и Docker Compose (v2 е включен като plugin)
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Добавете вашия потребител към Docker групата:
sudo usermod -aG docker $USER
Важно! 🚨 Излезте и влезте отново в системата за да влязат в сила промените.
Проверете дали Docker работи правилно:
docker --version
docker compose version
Лично аз съхранявам всичките си докери в папка докери в домашната си директория. Ако не съществува, създайте тази папка:
mkdir dockers
След това в папката dockers създайте папка, в която ще разположим Traefik:
mkdir -p traefik
cd traefik
Тази директория ще съдържа всички файлове свързани с Traefik. Така съм свикнал аз и така го пиша. Не сте длъжни да използвате същото.
Създайте мрежа за Traefik:
docker network create traefik
Тази мрежа ще позволи на Traefik да комуникира с другите контейнери.
Създайте traefik.yml
конфигурационен файл:
nano traefik.yml
Добавете следното съдържание:
# Traefik статична конфигурация
global:
checkNewVersion: false
sendAnonymousUsage: false
# Входни точки
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
# Providers
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
network: traefik
# API и Dashboard
api:
dashboard: true
insecure: true
# Сертификати (по желание)
certificatesResolvers:
letsencrypt:
acme:
email: your-email@example.com
storage: /letsencrypt/acme.json
httpChallenge:
entryPoint: web
Забележка: 📝 Заменете your-email@example.com
с вашия реален имейл адрес.
Създайте docker-compose.yml
файл:
version: '3.8'
services:
traefik:
image: traefik:v3.0
container_name: traefik
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/traefik.yml:ro
- ./letsencrypt:/letsencrypt
networks:
- traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.dashboard.rule=Host(`traefik.localhost`)"
- "traefik.http.routers.dashboard.tls=true"
- "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
networks:
traefik:
external: true
Създайте директория за SSL сертификатите:
mkdir letsencrypt
Стартирайте Traefik:
docker compose up -d
Проверете дали контейнерът работи:
docker compose ps
Отворете браузъра и идете на http://localhost:8080
или http://your-server-ip:8080
.
Ще видите Traefik dashboard! 🎨 Тук можете да наблюдавате всички ваши услуги в реално време.
Нека създадем просто тестово приложение за да видим Traefik в действие:
nano docker-compose.yml
Добавете:
version: '3.9'
services:
myapp:
image: nginx
container_name: myapp
networks:
- web
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.myapp.rule=Host(`myapp.example.com`)"
- "traefik.http.routers.myapp.entrypoints=websecure"
- "traefik.http.routers.myapp.tls=true"
- "traefik.http.routers.myapp.tls.certresolver=letsencrypt"
- "traefik.http.services.myapp.loadbalancer.server.port=80"
networks:
web:
external: true
Стартирайте тестовото приложение:
docker compose up -d
entryPoints.websecure.address=:443
certresolver=letsencrypt
web
myapp.example.com
трябва да сочи към публичния IP на сървъра.docker compose logs -f traefik
docker compose restart traefik
docker compose down
docker compose pull
docker compose up -d
Решение: Проверете дали портът 8080 е отворен и не се използва от друго приложение.
Решение: Проверете логовете с docker compose logs traefik
Решение: Уверете се че имате валиден домейн и че портовете 80 и 443 са достъпни от интернет.
Успешно инсталирахте Traefik на Ubuntu 24.04. Сега имате мощен reverse proxy който автоматично ще управлява вашите Docker контейнери.
Traefik ще ви спести много време и усилия при управлението на множество уеб приложения. Неговата автоматична конфигурация и красив интерфейс го правят идеален избор за начинаещи и експерти.
Успех с вашите проекти! Ако имате въпроси, не се колебайте да ги зададете.
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut