Программы
Как упаковать (собрать) Docker-контейнер со своим проектом и запустить его

Как упаковать (собрать) Docker-контейнер со своим проектом и запустить его

Пример простых команд и конфигов для сборки проекта в образ Docker, его запуск в контейнере.

Докер - система для работы с изолированными средами (контейнерами) для запуска приложений. В отличии от виртуализации контейнеры Докера не требуют трансляции команд одной операционной системы в другую. Вместо этого контейнер работает на ядре хостовой операционной системы, тем не менее, имея изолированные память, файловую систему, сеть и т.д.

Docker поддерживается на разных операционных системах таких как: Linux, Windows, MacOS. Это позволяет программировать на одной ОС, получать образ контейнера и запускать его на другой ОС без проблем с окружением программ внутри контейнера.

Как пишется Dockerfile

Для описания процесса сборки докер-контейнеров используется файл специального формата - Dockerfile.

Выглядит он примерно так:

FROM python:3
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
WORKDIR /app
COPY requirements.txt /app/
RUN pip install -r requirements.txt
COPY . /app/
ENTRYPOINT ["/app/docker-entrypoint.sh"]
  • В блоке FROM указывается образ, от которого будет "наследоваться" (базироваться) ваш образ. посмотреть возможные образы можно на https://hub.docker.com/. По сути, это минимальное окружение, которое необходимо вашему проекту. Если вы пишите на python определённой версии - выбираете python, если node - node. Если просто нужен Linux - ubuntu или alpine или ещё какой дистрибутив.
  • Блоки ENV указывают переменные окружения, которые будут использованы для запуска Вашего приложения.
  • WORKDIR - создать и перейти внутрь директории внутри образа.
  • COPY - копируем из директории рабочей машины в директорию образа.
  • RUN - запускаем внутри образа команду.
  • ENTRYPOINT - то, что будет запускаться при старте контейнера из этого образа.

Как собирается образ Docker

После чего можно собрать образ командой docker-build.

docker build --tag {{ имя образа }} .
  • --tag {{ имя образа }} - название образа, чтобы отличать его от других - понадобится при запуске контейнеров.
  • . - путь до папки, где лежит Dockerfile.

Как запускается Docker-контейнер

В простейшем случае docker контейнер можно запустить из образа командой docker-run:

docker run -d -p 8000:8000 {{ имя образа }}
  • -d - отвязаться от консоли.
  • -p 8000:8000 - прокидываем порт из контейнера наружу.

Прочие рецепты (как зайти в контейнер, как остановить и т.д.) можно найти в специальной рубрике по Докеру.