логотип PurpleSchool
логотип PurpleSchool

Загрузка образа в Docker

Автор

Олег Марков

Введение

Docker является мощным инструментом для разработки, доставки и работы с контейнерами, который изменил подход к созданию и управлению приложениями. Одним из ключевых аспектов Docker является работа с образами. В этой статье мы рассмотрим, как загружать образы в Docker, какие возможности предоставляет Docker для работы с ними и как эффективно использовать образы для оптимизации работы ваших приложений.

Docker образы — это шаблоны, из которых создаются контейнеры. Процесс загрузки образа в Docker позволяет вам разместить предустановленный шаблон на вашем локальном компьютере или сервере и использовать его для создания контейнеров.

Работа с образами в Docker

Что такое Docker образы

Docker образы представляют собой неизменные слои файловой системы, которые состоят из всех зависимостей, необходимых для выполнения приложения, включая все конфигурационные данные, системные библиотеки и код. Образ можно рассматривать как снимок системы, на основе которого контейнер получает свое состояние при запуске. Преимущество работы с образами заключается в том, что они делают приложение переносимым и позволяют команде разработчиков работать с одной и той же конфигурацией среды.

Загрузка образов из Docker Hub

Docker Hub — это публичное репозиторий образов, где вы можете найти множество предустановленных образов, созданных другими разработчиками или официально поддерживаемых сообществом Docker. Легко загружать образы из Docker Hub с помощью команды docker pull. Давайте разберемся на примере.

Пример загрузки образа

# Загрузка официального образа Node.js с Docker Hub
docker pull node

# Здесь команда `docker pull` указывает Docker загрузить образ Node.js

Как видите, docker pull загружает образ для использования на вашем локальном вычислительном устройстве. Если конкретная версия не указана, сразу загрузится последний доступный стабильный образ.

Проверка загруженных образов

После загрузки образа вы сможете увидеть список всех доступных образов на вашем устройстве с помощью команды docker images. Смотрите, я покажу вам, как это работает.

# Просмотр списка загруженных образов
docker images

# Эта команда возвращает список всех образов, сохраненных локально

Вы увидите таблицу с информацией об образах, включающую их репозиторий, теги, идентификатор образа, дату создания и размер. Это поможет вам отслеживать ваши образы и определять, какие из них использовать.

Создание Dockerfile и загрузка собственного образа

Иногда предустановленных образов может быть недостаточно для специфических нужд вашего проекта. В таких случаях вы можете создать собственный образ, используя Dockerfile. Dockerfile — это текстовый документ, содержащий инструкции по созданию образа.

Пример Dockerfile

# Указываем базовый образ для нового образа
FROM ubuntu:latest

# Устанавливаем пакеты и зависимости
RUN apt-get update && apt-get install -y python3

# Устанавливаем рабочую директорию
WORKDIR /usr/src/app

# Копируем локальные файлы в контейнер
COPY . .

# Устанавливаем зависимости из requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Определяем команду для выполнения контейнера
CMD ["python3", "./app.py"]

# Здесь определены все шаги по настройке нового образа на базе Ubuntu

Теперь вы увидите, как это выглядит в коде. Это пример Dockerfile для создания образа, который будет использовать Python для запуска приложения.

Для сборки образа на основе Dockerfile выполните команду следующим образом:

# Создание образа с именем my-python-app
docker build -t my-python-app .

# Здесь `docker build` указывает Docker построить новый образ, а флаг -t позволяет задать имя образа

Теперь у вас есть полностью настроенный образ, который можно использовать для развертывания вашего приложения.

Загрузка образа в репозиторий

После создания собственного образа вы можете захотеть загрузить его в Docker Hub или другой репозиторий для общей работы или для применения в разных проектах. Для этого используйте команду docker push. Давайте посмотрим, как это делается.

# Сначала авторизуйтесь в Docker Hub
docker login

# Загрузка образа my-python-app в Docker Hub
docker push yourusername/my-python-app

# В этом примере используем `docker push` для размещения образа в вашем репозитории

Эта команда отправит ваш локальный образ в Docker Hub, где его смогут использовать другие разработчики или члены вашей команды.

Деплой приложения из Docker образа

Следующий важный шаг после создания и загрузки образа — это деплой приложения. Давайте разберемся, как это делать.

Чтобы запустить контейнер на основе образа, используйте команду docker run.

# Запуск контейнера из образа my-python-app
docker run -d -p 80:80 yourusername/my-python-app

# В этом примере мы запускаем контейнер в фоновом режиме (`-d`)
# и проксируем локальный порт 80 на порт 80 контейнера (`-p 80:80`)

Теперь ваше приложение развёрнуто и доступно по адресу указанного порта. Работая с Docker, вы можете легко масштабировать и управлять приложениями благодаря контейнеризации.

Загрузка и управление образами в Docker — это незаменимый навык для современного разработчика, который обеспечивает переносимость, целостность и легкость развертывания приложений.

Карта развития разработчика

Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile