Введение
Docker — это популярная платформа для контейнеризации, которая позволяет разработчикам упаковывать и развертывать приложения в согласованной и изолированной среде. В этом руководстве вы узнаете, как создать собственный образ Docker и запустить контейнер Docker на основе этого образа. К концу этого руководства вы получите глубокое понимание процесса создания, управления и запуска контейнеров Docker для ваших приложений.
Понимание контейнеров Docker
Docker — это популярная открытая платформа, которая позволяет разработчикам создавать, развертывать и запускать приложения в контейнерной среде. Контейнеры — это лёгкие, автономные и исполняемые программные пакеты, включающие всё необходимое для запуска приложения, включая код, среду выполнения, системные инструменты и библиотеки.
Что такое контейнер Docker?
Контейнер Docker — это стандартизированная единица программного обеспечения, которая упаковывает код и все его зависимости, чтобы приложение быстро и надёжно работало в любой вычислительной среде. Контейнеры создаются из образов Docker, которые являются чертежами для создания контейнеров.
graph LR
A[Образ Docker] --> B[Контейнер Docker]
B[Контейнер Docker] --> C[Запущенное приложение]
Преимущества контейнеров Docker
Контейнеры Docker предлагают ряд преимуществ по сравнению с традиционными подходами виртуализации:
| Преимущество | Описание |
|---|---|
| Переносимость | Контейнеры могут работать одинаково на любом компьютере, независимо от базовой инфраструктуры. |
| Эффективность | Контейнеры используют общую операционную систему хоста, что делает их более лёгкими и эффективными, чем виртуальные машины. |
| Согласованность | Контейнеры гарантируют, что приложения всегда будут работать одинаково, независимо от среды. |
| Масштабируемость | Контейнеры легко масштабируются вверх или вниз для удовлетворения меняющихся потребностей. |
Жизненный цикл контейнера Docker
Жизненный цикл контейнера Docker включает следующие этапы:
- Создание: Создание образа Docker из Dockerfile.
- Доставка: Хранение образа Docker в репозитории, таком как Docker Hub.
- Запуск: Запуск нового контейнера из образа Docker.
- Управление: Мониторинг, масштабирование и обслуживание работающих контейнеров.
Понимание основ контейнеров 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.



