Docker для начинающих: что нужно знать для деплоя

Базовые концепции Docker простым языком. Контейнеры, образы, Dockerfile — минимум теории для понимания деплоя на AlphaCI.

Docker для начинающих: что нужно знать для деплоя

Docker для начинающих: что нужно знать для деплоя

Docker — это технология контейнеризации. Звучит сложно, но на практике всё просто.

Аналогия

Представьте, что ваше приложение — это блюдо в ресторане. Docker-контейнер — это контейнер для доставки, в котором есть:
- Само блюдо (ваш код)
- Посуда (зависимости)
- Инструкция по разогреву (конфигурация)

Не важно, куда вы доставляете — контейнер откроется и будет работать одинаково.

Ключевые понятия

Image (Образ)

Шаблон — «рецепт» вашего приложения. Создаётся один раз, используется много раз.

Container (Контейнер)

Запущенный экземпляр образа. Как запущенная программа из установочного файла.

Dockerfile

Инструкция для создания образа. Пример для Node.js:

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]

docker-compose.yml

Конфигурация для запуска нескольких контейнеров вместе (приложение + база данных):

services:
  app:
    build: .
    ports:
      - "3000:3000"
  db:
    image: postgres:16
    environment:
      POSTGRES_DB: myapp

Как это работает в AlphaCI

AlphaCI автоматически создаёт Dockerfile для вашего проекта:

  1. StackDetector определяет технологию (Next.js, Rails, Django...)
  2. DeploymentBuilder генерирует оптимальный Dockerfile
  3. Образ собирается на сервере
  4. Контейнер запускается с правильными настройками

Вам не нужно писать Dockerfile вручную — AlphaCI сделает это за вас. Но если у вас уже есть свой Dockerfile, платформа использует его.

Основные команды

# Собрать образ
docker build -t myapp .

# Запустить контейнер
docker run -p 3000:3000 myapp

# Посмотреть запущенные контейнеры
docker ps

# Остановить контейнер
docker stop <container_id>

# Посмотреть логи
docker logs <container_id>

Итог

Docker — это способ упаковать приложение со всеми зависимостями в переносимый контейнер. AlphaCI берёт на себя всю работу с Docker, но понимание основ поможет вам при отладке.

Поделиться: