Как запустить контейнер Docker на основе пользовательского образа

DockerBeginner
Практиковаться сейчас

Введение

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

Понимание контейнеров Docker

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

Что такое контейнер Docker?

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

graph LR
  A[Образ Docker] --> B[Контейнер Docker]
  B[Контейнер Docker] --> C[Запущенное приложение]

Преимущества контейнеров Docker

Контейнеры Docker предлагают ряд преимуществ по сравнению с традиционными подходами виртуализации:

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

Жизненный цикл контейнера Docker

Жизненный цикл контейнера Docker включает следующие этапы:

  1. Создание: Создание образа Docker из Dockerfile.
  2. Доставка: Хранение образа Docker в репозитории, таком как Docker Hub.
  3. Запуск: Запуск нового контейнера из образа Docker.
  4. Управление: Мониторинг, масштабирование и обслуживание работающих контейнеров.

Понимание основ контейнеров Docker позволит вам перейти к созданию собственного образа Docker.

Создание пользовательского образа Docker

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

Создание Dockerfile

Вот пример Dockerfile, который создаёт пользовательский образ на основе базового образа Ubuntu 22.04 и устанавливает веб-сервер Apache:

## Используем базовый образ Ubuntu 22.04
FROM ubuntu:22.04

## Обновляем индекс пакетов и устанавливаем Apache
RUN apt-get update && apt-get install -y apache2

## Устанавливаем команду по умолчанию для запуска при запуске контейнера
CMD ["apache2ctl", "-D", "FOREGROUND"]

Сборка образа Docker

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

docker build -t my-apache-image .

Эта команда создаст новый образ Docker с именем my-apache-image на основе инструкций в Dockerfile.

Просмотр образа Docker

После сборки образа вы можете перечислить все образы на вашей системе, используя следующую команду:

docker images

Это отобразит список образов Docker, включая только что созданный my-apache-image.

Вы также можете просмотреть подробности образа, используя следующую команду:

docker inspect my-apache-image

Это отобразит метаданные и конфигурацию образа Docker.

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

Запуск контейнера Docker из пользовательского образа

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

Запуск контейнера Docker

Чтобы запустить новый контейнер из образа my-apache-image, используйте следующую команду:

docker run -d -p 80:80 --name my-apache-container my-apache-image

Вот что делает каждая часть команды:

  • docker run: Запускает новый контейнер Docker.
  • -d: Запускает контейнер в откреплённом режиме (фоновом режиме).
  • -p 80:80: Отображает порт 80 на хосте на порт 80 в контейнере, позволяя получить доступ к веб-серверу с хоста.
  • --name my-apache-container: Присваивает имя "my-apache-container" запущенному контейнеру.
  • my-apache-image: Имя образа Docker, используемого для контейнера.

Проверка запущенного контейнера

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

## Список всех запущенных контейнеров
docker ps

## Просмотр информации о контейнере
docker inspect my-apache-container

Команда docker ps покажет список запущенных контейнеров, включая my-apache-container, который вы только что запустили.

Команда docker inspect предоставит подробную информацию о запущенном контейнере, включая его IP-адрес, отображения портов и другие детали конфигурации.

Доступ к веб-серверу

После запуска контейнера вы можете получить доступ к веб-серверу Apache, открыв веб-браузер и перейдя по адресу http://localhost. Вы должны увидеть стандартную приветственную страницу Apache.

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

Резюме

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