Гид по технологиям

Основы Docker: Dockerfile, команды и запуск приложения

3 min read DevOps Обновлено 23 Dec 2025
Основы Docker: Dockerfile и запуск
Основы Docker: Dockerfile и запуск

Иллюстрация: контейнеризация и Docker

Быстрые ссылки

  • Что такое Docker и зачем он нужен?

  • Создание Dockerfile

  • Команды Dockerfile

  • Запуск приложения

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

Что такое Docker и зачем он нужен?

Docker упрощает управление конфигурацией продакшн‑окружения. Вместо ручной настройки серверов вы автоматизируете процесс в Dockerfile и получаете однообразный образ для всех членов команды.

Образ одинаков для всех, поэтому приложение запускается везде одинаково. Это решает классическую проблему «у меня работает, а у тебя нет». Docker не эмулирует отдельную ОС целиком, как виртуальная машина. Вместо этого он использует ресурсы хоста, что уменьшает накладные расходы и повышает масштабируемость.

Хостинг контейнеров: диаграмма распределения контейнеров и хостов

Важно: Docker удобен, но не всегда обязателен. Если у вас простой статичный сайт на CDN или полностью управляемая платформа, контейнеры могут добавить лишний слой. Ниже — когда Docker хорош, а когда стоит рассмотреть альтернативы.

Создание Dockerfile

Точка входа для сборки контейнера называется Dockerfile. Создайте директорию проекта и внутри файл с именем:

Dockerfile

(без расширения). Например:

touch Dockerfile

Откройте файл в редакторе.

Скорее всего, не имеет смысла начинать всё с нуля. Вы можете унаследовать образ с Docker Hub, например Ubuntu:

FROM ubuntu

Если же вам нужно полностью пустое пространство, используют FROM scratch — это значит «начать с чистого листа».

Во время сборки Docker создаёт набор слоев. Каждая инструкция, которая меняет файловую систему, создаёт новый слой. В Dockerfile вы описываете команды так, чтобы автоматизировать настройку, которую в реальной жизни вы бы выполняли на пустой Linux‑машине.

Для отладки вы можете запускать контейнер и получать shell:

docker exec -it  /bin/bash

Сохранить изменения в текущем контейнере можно через:

docker commit  

Это удобно для экспериментов, но окончательную конфигурацию всё равно кладите в Dockerfile — так она версионируема и воспроизводима.

Команды Dockerfile

Ниже — часто используемые инструкции с примерами и лучшими практиками.

COPY

COPY копирует файлы из контекста сборки в образ.

COPY  

Пример: если в проекте есть папка /config/nginx/ с nginx.conf и папками sites-available, можно скопировать её в стандартное место контейнера:

COPY /config/nginx/ /etc/nginx/

Советы по COPY:

  • Копируйте только то, что нужно для сборки образа. Используйте .dockerignore, чтобы исключить node_modules, .git и временные файлы.
  • Старайтесь минимизировать число COPY между слоями — объединяйте шаги, если это логично.

RUN

RUN выполняет команду в контейнере и фиксирует изменения в слое.

RUN 

Каждый RUN создаёт новый слой. Для сложной установки лучше поместить логику в скрипт и запускать его:

COPY install.sh .
RUN ./install.sh

Внутри install.sh можно устанавливать пакеты через apt, создавать пользователя, настраивать окружение.

Оптимизация слоёв:

  • Объединяйте связанные команды в один RUN через &&, чтобы уменьшить количество слоёв и размер образа.
  • Очищайте кэш пакетного менеджера в том же RUN, где устанавливаете пакеты (например apt clean && rm -rf /var/lib/apt/lists/*).

CMD

CMD задаёт команду по умолчанию при старте контейнера, если ничего не передано.

CMD [
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как сделать резервную копию iPhone перед iOS 9
Руководство

Как сделать резервную копию iPhone перед iOS 9

Как вернуться к работе после отпуска — план и приложения
Саморазвитие

Как вернуться к работе после отпуска — план и приложения

Разделённый экран в Android Nougat — инструкция
Android.

Разделённый экран в Android Nougat — инструкция

Рождественская открытка в Photoshop
Дизайн

Рождественская открытка в Photoshop

Сканирование в Windows 10 без сторонних программ
Windows

Сканирование в Windows 10 без сторонних программ

Уход за фототехникой: руководство для начинающих
Фототехника

Уход за фототехникой: руководство для начинающих