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 для вашего проекта:
StackDetectorопределяет технологию (Next.js, Rails, Django...)DeploymentBuilderгенерирует оптимальный Dockerfile- Образ собирается на сервере
- Контейнер запускается с правильными настройками
Вам не нужно писать 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, но понимание основ поможет вам при отладке.