Что происходит после создания Dockerfile?

«Что происходит после создания Dockerfile?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Dockerfile — это сценарий сборки образа. После его создания следует процесс сборки образа и запуска контейнера.

Основные шаги:

  1. Сборка Docker-образа Выполняется команда docker build -t my-app:latest .

    • Docker Daemon читает инструкции из Dockerfile последовательно.
    • Каждая инструкция (FROM, RUN, COPY, ADD, WORKDIR и др.) создает новый слой образа.
    • Слои кэшируются для ускорения последующих сборок.
  2. Запуск контейнера из образа Выполняется команда docker run -d -p 8080:8080 my-app:latest

    • Docker создает изолированную среду выполнения (контейнер) на основе образа.
    • Запускается процесс, указанный в CMD или ENTRYPOINT.

Пример типичного Dockerfile для Java-приложения:

# 1. Базовый образ
FROM eclipse-temurin:17-jre-alpine

# 2. Метаданные (необязательно)
LABEL maintainer="dev@example.com"

# 3. Рабочая директория внутри контейнера
WORKDIR /app

# 4. Копирование артефакта сборки (JAR-файл)
COPY target/my-application.jar app.jar

# 5. Открытие порта (документация)
EXPOSE 8080

# 6. Команда запуска приложения
ENTRYPOINT ["java", "-jar", "app.jar"]

Последовательность команд для работы:

# Сборка образа с тегом
$ docker build -t my-java-app:1.0 .

# Просмотр собранных образов
$ docker images

# Запуск контейнера в фоновом режиме с пробросом порта
$ docker run -d --name my-app-container -p 8080:8080 my-java-app:1.0

# Проверка работающих контейнеров
$ docker ps

Собранный образ можно опубликовать в реестр (Docker Hub, GitLab Registry) командой docker push.