Команда Docker build

Справочник команд Docker


docker buildКоманда используется для сборки Docker-образа из Dockerfile.

docker buildКоманда считывает инструкции, определённые в Dockerfile, собирает образ шаг за шагом и сохраняет итоговый результат в локальный репозиторий образов.

Синтаксис

docker build [OPTIONS] PATH | URL | -
  • PATH: путь к каталогу, содержащему Dockerfile, или.(Текущий каталог).
  • URL: Указывает на адрес удалённого репозитория (например, репозитория Git), содержащего Dockerfile.
  • -: Считывает Dockerfile из стандартного ввода.

Общие параметры:

  • -t, --tag: Задаёт имя и тег для собранного образа.
  • -f, --file: Задаёт путь к Dockerfile (по умолчаниюPATHподDockerfile)。
  • --build-arg: Задать аргументы сборки.
  • --no-cache: Собрать образ без использования слоя кэша.
  • --rm: Удалять промежуточные контейнеры после успешной сборки (включено по умолчанию).
  • --force-rm: Всегда удалять промежуточные контейнеры, независимо от того, завершится сборка успешно или неудачно.
  • --pull: Всегда пытаться загрузить последний базовый образ из реестра.

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

  • --build-arg=[]: Задать переменные при сборке образа.
  • --cpu-shares: Задать вес использования CPU.
  • --cpu-period: Ограничить период CFS для CPU.
  • --cpu-quota: Ограничить квоту CFS для CPU.
  • --cpuset-cpus: Указать доступные идентификаторы CPU.
  • --cpuset-mems: Укажите доступные идентификаторы узлов памяти.
  • --disable-content-trust: Игнорировать проверку доверия к содержимому (включена по умолчанию).
  • -f: Укажите путь к Dockerfile.
  • --force-rm: Принудительно удалять промежуточные контейнеры во время процесса сборки.
  • --isolation: Использовать указанную технологию изоляции контейнеров.
  • --label=[]: Задать метаданные для образа.
  • -m: Задать максимальное значение памяти.
  • --memory-swap: Задать максимальное значение пространства подкачки (память + пространство подкачки),-1означает отсутствие ограничений на пространство подкачки.
  • --no-cache: Не использовать кеш при сборке образа.
  • --pull: Попытаться загрузить последнюю версию базового образа.
  • --quiet, -q: Тихий режим; выводить только ID образа после успешной сборки.
  • --rm: Удалять промежуточные контейнеры после успешной сборки (включено по умолчанию).
  • --shm-size: Задать/dev/shmразмер, со значением по умолчанию 64M.
  • --ulimit: Задать конфигурацию Ulimit.
  • --squash: Сжать все шаги в Dockerfile в один слой.
  • --tag, -t: Указать имя и тег для образа в форматеname:tagилиname; для одного образа можно задать несколько тегов в рамках одной сборки.
  • --network: Задать во время сборкиRUNсетевой режим инструкции, значение по умолчанию —default。

1. Собрать образ

docker build -t myimage:latest .

Эта команда читает Dockerfile из текущего каталога и собирает образ с именем myimage:latest.

2. Указать путь к Dockerfile

docker build -f /path/to/Dockerfile -t myimage:latest .

Эта команда читает Dockerfile из каталога /path/to/ и собирает образ с именем myimage:latest.

3. Задайте аргументы сборки

docker build --build-arg HTTP_PROXY=http://proxy.example.com -t myimage:latest .

Это позволит использовать переменную окружения HTTP_PROXY во время процесса сборки.

4. Соберите образ без использования слоя кэша

docker build --no-cache -t myimage:latest .

Это проигнорирует все кэшированные слои при сборке образа, гарантируя, что каждый шаг будет выполнен заново.

Пример — сборка образа с помощью Dockerfile

1. Создайте Dockerfile со следующим содержимым:

# Dockerfile 示例
FROM ubuntu:20.04
LABEL maintainer="[email protected]"
RUN apt-get update && apt-get install -y nginx
COPY index.html /var/www/html/index.html
CMD ["nginx", "-g", "daemon off;"]

2. Соберите образ

docker build -t mynginx:latest .

Пример вывода:

Sending build context to Docker daemon  3.072kB
Step 1/5 : FROM ubuntu:20.04
20.04: Pulling from library/ubuntu
...
Step 2/5 : LABEL maintainer="[email protected]"
...
Step 3/5 : RUN apt-get update && apt-get install -y nginx
...
Step 4/5 : COPY index.html /var/www/html/index.html
...
Step 5/5 : CMD ["nginx", "-g", "daemon off;"]
...
Successfully built 123456789abc
Successfully tagged mynginx:latest

3. Проверьте образ

docker images

Пример вывода:

Примечания

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
mynginx      latest    123456789abc   10 minutes ago   200MB
  • Убедитесь, что синтаксис Dockerfile корректен, и выполняйте каждый шаг по порядку.
  • Использование.dockerignoreФайл исключает ненужные файлы и каталоги, чтобы уменьшить размер контекста сборки.
  • В производственных средах старайтесь использовать минимальные базовые образы, чтобы уменьшить размер образа и повысить безопасность.
  • Избегайте раскрытия конфиденциальной информации (например, паролей, ключей) в Dockerfile.

docker buildКоманда — это основной инструмент для сборки образов Docker. Определив понятный Dockerfile, можно автоматически собрать среду выполнения и зависимости приложения. При её использовании обязательно правильно задавайте параметры и оптимизируйте Dockerfile, чтобы повысить эффективность сборки и качество образа.


Справочник команд Docker

Другие расширения