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