Docker. Работа с образами. Часть 3
Table of contents

Работа с образами Docker — это основа контейнеризации. В этом гайде мы рассмотрим, как скачивать, создавать и публиковать образы, разберём структуру Dockerfile и создадим собственный образ.
Команды: docker pull, docker build, docker push
docker pull
Команда docker pull используется для загрузки (скачивания) образа из реестра Docker (например, Docker Hub).
Синтаксис:
docker pull <имя_образа>[:тег]Примеры:
docker pull ubuntu
docker pull nginx:1.25
docker pull registry.example.com/custom/image:latestdocker build
Команда docker build используется для создания собственного образа на основе Dockerfile.
Синтаксис:
docker build -t <имя_образа>[:тег] <путь>Примеры:
docker build -t myapp:latest .
docker build -t registry.example.com/myapp:v1 ./appdocker push
Команда docker push публикует образ в удалённый реестр (по умолчанию Docker Hub).
Синтаксис:
docker push <имя_образа>[:тег]Примеры:
docker push myapp:latest
docker push registry.example.com/myapp:v1Dockerfile: структура и примеры
Dockerfile — это текстовый файл с инструкциями для сборки Docker-образа.
Основные инструкции:
FROM— базовый образRUN— выполнение команд в контейнереCOPY/ADD— копирование файловWORKDIR— рабочая директорияCMD/ENTRYPOINT— команда, выполняемая при запуске контейнера
Пример 1: Образ для Python-приложения
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]Пример 2: Образ для NGINX
FROM nginx:alpine
COPY ./static /usr/share/nginx/htmlПрактика: создание собственного образа
Шаг 1: Подготовим структуру проекта
myproject/
├── app.py
├── requirements.txt
└── Dockerfileapp.py:
print("Привет из Docker!")requirements.txt: (оставим пустым, если зависимостей нет)
Dockerfile:
FROM python:3.11-slim
WORKDIR /app
COPY . .
CMD ["python", "app.py"]Шаг 2: Сборка образа
cd myproject
docker build -t my-python-app .Шаг 3: Запуск контейнера
docker run --rm my-python-appРезультат:
Привет из Docker!Это базовые операции с Docker-образами которые помогут создать собственный образ для любого приложения. Далее можно перейти к более сложным темам: мультистейдж-сборка, оптимизация размеров образов, использование .dockerignore и CI/CD.
Cледующая часть
Docker. Docker Compose. Часть 4