Учебное пособие по Docker - понимание Dockerfile
Dockerfile — это текстовый файл, содержащий набор инструкций. Если запустить, мы можем построить образ. Затем мы можем запускать контейнеры со встроенным изображением.
Мы можем использовать готовые изображения, такие как Postgres. Тем не менее, мы должны создавать образы для наших основных сервисов. Чтобы поместить это в контейнер, мы должны создать Dockerfile. Благодаря его простоте мы можем начать создавать ваши изображения с помощью нескольких команд.
Основные команды
Следующие команды являются основными компонентами для создания изображения.
FROM
указывает базовому образу запустить процесс. Например) linux-alpine.
RUN
и CMD
сообщают командам о выполнении.
Разница в том, что RUN
будет выполняться при создании образа. CMD
будет выполняться по умолчанию, когда мы запустим созданный образ.
ADD
копирует файлы из источника в пункт назначения внутри контейнера.
ENV
задает переменные среды.
Переменные ARG
доступны только при создании изображения.
EXPOSE
сообщает контейнеру Docker прослушивать определенные порты.
WORKDIR
задает рабочий каталог для команд типа RUN
Выпекание изображения
Теперь, когда вы понимаете основные команды, давайте рассмотрим следующую.
# syntax=docker/dockerfile:1
FROM node:18-alpine
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
EXPOSE 3000
С помощью узла базового изображения он скопирует все из /app
в /app
. Затем он запустит yarn install
для зависимостей. Как только он завершит установку. Процесс завершается.
Совет:CMD
иEXPOSE
будут запущены при запуске контейнера на основе этого образа.
Чтобы создать изображение, запустите
docker build -t first-try.
Это позволит создать образ. Если вы передадите .
, Docker будет искать Dockerfile в текущем каталоге. После создания изображения он пометит изображение, которое вы передаете. В этом случае мы помечаем это как "first-try".
Совет: тег не требуется. Это больше для удобочитаемой этикетки.
Запуск контейнера
Как только мы запечем образ Docker, мы сможем запустить контейнер. Запуск,
docker run -d first-try
Совет: -d
— это опция для автономного режима. Если вы передадите этот параметр, Docker будет работать в фоновом режиме.
Чтобы увидеть статус вашего контейнера, запустите docker ps
.
Теперь вы должны быть в состоянии создать образ и запускать контейнеры с вашим изображением. Что, если нам нужно запустить более сложное программное обеспечение? Что, если у него есть база данных или кэш? Docker предоставляет инструмент docker compose
для запуска многоконтейнерной кодовой базы.