UNIXAWESOME

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

#docker #container

Работа с образами 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-образа.

Основные инструкции:

Пример 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.

Reply to this post by email ↪