UNIXAWESOME

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

#docker #container
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:latest

docker build

Команда docker build используется для создания собственного образа на основе Dockerfile.

Синтаксис:

docker build -t <имя_образа>[:тег] <путь>

Примеры:

docker build -t myapp:latest .
docker build -t registry.example.com/myapp:v1 ./app

docker push

Команда docker push публикует образ в удалённый реестр (по умолчанию Docker Hub).

Синтаксис:

docker push <имя_образа>[:тег]

Примеры:

docker push myapp:latest
docker push registry.example.com/myapp:v1

Dockerfile: структура и примеры

Dockerfile — это текстовый файл с инструкциями для сборки Docker-образа.

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

Пример 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
└── Dockerfile

app.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

Reply to this post by email ↪

Or share: