Статьи

Создание и развертывание контейнеров с Docker

Введение

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

Для чего нужен Docker

  • Упрощает развертывание приложений
  • Обеспечивает изоляцию и масштабируемость
  • Позволяет создавать воспроизводимые среды
  • Поддерживает DevOps-подход и CI/CD

Что потребуется

  • Установленный Docker (на Linux, Windows или macOS)
  • Базовые знания командной строки
  • Docker Hub аккаунт (опционально для публикации образов)

Подробное руководство

Шаг 1: Установка Docker

На Ubuntu:

sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

Проверьте установку:

docker --version

Шаг 2: Создание Dockerfile

Пример для Node.js приложения:

FROM node:16
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "index.js"]

Шаг 3: Сборка Docker-образа

docker build -t my-node-app .

Шаг 4: Запуск контейнера

docker run -d -p 3000:3000 --name my-running-app my-node-app

Шаг 5: Просмотр контейнеров и логов

docker ps

docker logs my-running-app

Шаг 6: Публикация на Docker Hub

docker login

docker tag my-node-app username/my-node-app

docker push username/my-node-app

Решение распространённых проблем

Проблема - Причина - Решение

Контейнер сразу завершает работу - CMD или ENTRYPOINT не задан - Проверьте Dockerfile

Порт недоступен - Не проброшен при запуске - Используйте -p <host>:<container>

Ошибка при сборке - Ошибка в Dockerfile - Проверьте пути, команды и зависимости

Заключение

Docker значительно упрощает создание и развертывание приложений. Благодаря изоляции и автоматизации процессов, вы можете быстро разворачивать приложения в разных средах, устраняя проблему "работает у меня".

Дополнительные источники


Совет: Используйте docker-compose для управления многоконтейнерными приложениями и интеграции с сетями и томами.