Добавить в корзинуПозвонить
Найти в Дзене

Разбираем Dockerfile: инструкция по созданию своего образа

Разбираем Dockerfile: инструкция по созданию своего образа 🐳 Dockerfile — это текстовый файл с инструкциями для сборки Docker-образа. Каждая команда создаёт новый слой, что делает образы эффективными и переиспользуемыми. 📦 Базовые инструкции: FROM — определяет базовый образ (например, python:3.9 или node:16) WORKDIR — устанавливает рабочую директорию внутри контейнера COPY — копирует файлы из хоста в контейнер RUN — выполняет команды во время сборки (установка пакетов) EXPOSE — указывает порты для прослушивания CMD — задает команду по умолчанию при запуске контейнера 🔧 Пример простого Dockerfile для Python-приложения: FROM python:3.9-alpine WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 5000 CMD ["python", "app.py"] 💡 Лучшие практики: • Используйте .dockerignore для исключения ненужных файлов • Объединяйте RUN команды для уменьшения количества слоёв • Выбирайте минимальные базовые образы (Alpine Linux) • Указывайте конкретные версии т

Разбираем Dockerfile: инструкция по созданию своего образа 🐳

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

Базовые инструкции:

FROM — определяет базовый образ (например, python:3.9 или node:16)

WORKDIR — устанавливает рабочую директорию внутри контейнера

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

RUN — выполняет команды во время сборки (установка пакетов)

EXPOSE — указывает порты для прослушивания

CMD — задает команду по умолчанию при запуске контейнера

🔧 Пример простого Dockerfile для Python-приложения:

FROM python:3.9-alpine

WORKDIR /app

COPY requirements.txt .

RUN pip install -r requirements.txt

COPY . .

EXPOSE 5000

CMD ["python", "app.py"]

💡 Лучшие практики:

• Используйте .dockerignore для исключения ненужных файлов

• Объединяйте RUN команды для уменьшения количества слоёв

• Выбирайте минимальные базовые образы (Alpine Linux)

• Указывайте конкретные версии тегов вместо latest

Оптимизация сборки: кэширование слоёв позволяет ускорить повторные сборки. Docker использует кэш до первой изменённой инструкции. ⚡

Создание образа:

docker build -t my-app:latest .

Проверка:

docker images

docker run -p 5000:5000 my-app

Правильно написанный Dockerfile — ключ к эффективной контейнеризации приложений! 🚀

Для глубокого погружения в Docker и DevOps практики рекомендую ознакомиться с образовательными программами: https://cdpo.itmo.ru/