Как да инсталирате Traefik с docker compose на Ubuntu 24.04?

Как да инсталирате Traefik с docker compose на Ubuntu 24.04?

Здравейте приятели! Ако търсите начин да управлявате вашите Docker контейнери с елегантен reverse proxy, то Traefik е точно това, което ви трябва. В тази статия ще ви покажа стъпка по стъпка как да го инсталирате на Ubuntu 24.04.

Какво е Traefik и защо да го използвате? 🤔

Traefik е модерен HTTP reverse proxy и load balancer. Той автоматично открива вашите услуги и конфигурира рутирането за тях.

Основните предимства на Traefik:

  • Автоматично откриване на услуги
  • Вградена поддръжка за SSL сертификати
  • Няма UI по подразбиране (но има dashboard)
  • Перфектна интеграция с Docker
  • Нулево време за престой при промени

Аз лично предпочитам Nginx Proxy Manager (NPM), което е лесен за употреба инструмент с графичен интерфейс, докато Traefik е по-мощен и автоматизиран, особено когато се използва в среда с много контейнери и динамично разрастване.

Предварителни изисквания 📋

Преди да започнем, уверете се че имате:

  • Ubuntu 24.04 LTS сървър или десктоп 💻
  • Root достъп или sudo права 👑
  • Минимум 2GB RAM и 10GB свободно място 💾
  • Базови познания за командния ред 🖥️

Стъпка 1: Инсталиране на Docker и Docker Compose

Първо трябва да инсталираме 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

Стъпка 2: Създаване на работна директория 📁

Лично аз съхранявам всичките си докери в папка докери в домашната си директория. Ако не съществува, създайте тази папка:

mkdir dockers

След това в папката dockers създайте папка, в която ще разположим Traefik:

mkdir -p traefik
cd traefik

Тази директория ще съдържа всички файлове свързани с Traefik. Така съм свикнал аз и така го пиша. Не сте длъжни да използвате същото.

Стъпка 3: Създаване на Docker network 🌐

Създайте мрежа за Traefik:

docker network create traefik

Тази мрежа ще позволи на Traefik да комуникира с другите контейнери.

Стъпка 4: Конфигуриране на 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 с вашия реален имейл адрес.

Стъпка 5: Създаване на Docker Compose файл 📄

Създайте 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

Стъпка 6: Стартиране на Traefik

Създайте директория за SSL сертификатите:

mkdir letsencrypt

Стартирайте Traefik:

docker compose up -d

Проверете дали контейнерът работи:

docker compose ps

Стъпка 7: Достъп до Dashboard 🎛️

Отворете браузъра и идете на http://localhost:8080 или http://your-server-ip:8080.

Ще видите Traefik dashboard! 🎨 Тук можете да наблюдавате всички ваши услуги в реално време.

Стъпка 8: Тестване с примерно приложение 🧪

Нека създадем просто тестово приложение за да видим 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

✅ Условия, за да работи:

  1. Traefik трябва да е стартиран с:
    • entryPoints.websecure.address=:443
    • конфигуриран certresolver=letsencrypt
    • споделена мрежа web
  2. DNS запис за myapp.example.com трябва да сочи към публичния IP на сървъра.
  3. Порт 443 трябва да е отворен в защитната стена.
  4. Ако използвате Cloudflare (или друг reverse proxy), уверете се, че SSL passthrough или пълен режим е активен.

Полезни съвети и трикове 💡

1. Мониторинг на логовете

docker compose logs -f traefik

2. Рестартиране на Traefik

docker compose restart traefik

3. Спиране на всички услуги

docker compose down

4. Обновяване на Traefik

docker compose pull
docker compose up -d

Решаване на проблеми 🔧

Проблем: Не мога да достъпя dashboard

Решение: Проверете дали портът 8080 е отворен и не се използва от друго приложение.

Проблем: Контейнерът не стартира

Решение: Проверете логовете с docker compose logs traefik

Проблем: SSL сертификатите не работят

Решение: Уверете се че имате валиден домейн и че портовете 80 и 443 са достъпни от интернет.

Заключение 🎯

Успешно инсталирахте Traefik на Ubuntu 24.04. Сега имате мощен reverse proxy който автоматично ще управлява вашите Docker контейнери.

Traefik ще ви спести много време и усилия при управлението на множество уеб приложения. Неговата автоматична конфигурация и красив интерфейс го правят идеален избор за начинаещи и експерти.

Успех с вашите проекти! Ако имате въпроси, не се колебайте да ги зададете.


Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: