Docker: як спростити розгортання ваших застосунків

КонтейнериDockerDevOps

Зачіпка

Docker дозволяє пакувати ваш застосунок і всі його залежності в один ізольований образ. Це означає, що ваш код працює однаково на будь‑якому сервері без “працює у мене”.

Проблема / Контекст

Раніше для розгортання доводилось встановлювати різне ПЗ на різних серверах, налаштовувати бібліотеки, вирішувати конфлікти версій. Результат – «у мене все працює», а у продакшн‑середовища – ні.

Чому це важливо

Контейнери забезпечують стабільність, швидке масштабування і спрощують CI/CD‑потоки. Ви економите час на налаштування середовища і знижуєте ризик помилок під час релізу.

Як це зробити

  1. Встановити Docker Engine
    sudo apt‑update
    sudo apt‑install -y ca-certificates curl gnupg
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt‑update
    sudo apt‑install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
  2. Перевірити встановлення
    docker run --rm hello-world
  3. Створити Dockerfile для простого Node.js‑додатку:
    FROM node:18-alpine
    WORKDIR /app
    COPY package*.json ./
    RUN npm ci --only=production
    COPY . .
    CMD ["node", "index.js"]
  4. Зібрати образ
    docker build -t my‑app .
  5. Запустити контейнер
    docker run -d -p 3000:3000 --name my‑app‑c my‑app
    Тепер ваш додаток доступний за http://localhost:3000.

Антипатерни

  • Запускати контейнер від root – краще створити користувача всередині образу.
  • Не вказувати EXPOSE у Dockerfile – ускладнює розуміння портів.
  • Хитати великі образи – використовуйте Alpine‑based базові образи, щоб зменшити розмір.

Висновок / План дій

  • Встановити Docker на вашій машині.
  • Створити простий Dockerfile для одного з ваших проектів.
  • Додати Docker‑команди у ваш CI‑pipeline.
  • Після успішного запуску розглянути docker‑compose для мультіконтейнерних додатків.

Короткий чеклист

  • Встановити Docker Engine
  • Створити Dockerfile
  • Зібрати образ
  • Запустити контейнер

Prompt Pack: Docker Quick‑Start

Створи покроковий гайд з встановлення Docker на Ubuntu, створення простого Dockerfile та запуску контейнера з Node.js‑додатком. Додай приклади команд і пояснення.