Контейнер Docker — автономный исполняемый пакет, содержащий все необходимое для запуска программного обеспечения, включая код, среду выполнения, библиотеки и инструменты. Благодаря технологии контейнеризации, процесс развертывание приложений стал проще и эффективнее.
Мы подготовили целую серию статей, посвященных использованию Docker в дистрибутивах CentOS / RHEL Linux:
- Установка Docker и базовые операции над контейнерами в CentOS / RHEL Linux.
- Как управлять приложениями внутри контейнера Docker.
- Создание собственного образа Docker с помощью Dockerfile.
В этой статье мы расскажем, как устанавливать и запускать приложения внутри контейнеров Docker.
Содержание:
- Создание контейнера на базе образа Ubuntu
- Установка приложения в контейнере
- Создание образа на основе контейнера Docker
- Запуск приложения внутри контейнера Docker
- Проверка работы веб-сервера на хост-системе
- Остановка запущенного контейнера Docker
- Выводы
Создание контейнера на базе образа Ubuntu
В прошлой статье из этой серии мы показали Вам, как загрузить образ Ubuntu из Docker Hub. Поэтому используем его для создания контейнера. Для примера запустим новый контейнер в интерактивном режиме с оболочкой Bash:
Установка приложения в контейнере
В открывшемся терминале Ubuntu Linux можно выполнять команды. Допустим, нам нужно установить приложение nginx
. Для этого сначала обновим все подключенные репозитории:
Читайте также: Как поместить свое веб-приложение в Docker-контейнер. Работа с Dockerfile.
После чего установим утилиту nginx
:
По окончании инсталляции выйдем из контейнера, выполнив в терминале:
Также выведем на экран информацию о созданном контейнере с помощью команды:
Создание образа на основе контейнера Docker
Мы можем сохранить наш контейнер в виде образа Docker, чтобы в будущем использовать его для создания других контейнеров, которые будут иметь те же настройки и приложения. Для этого применим следующую команду:
Здесь:
<container-id>
— уникальный идентификатор или название контейнера, который нужно зафиксировать в виде образа;<new-image-name>
— желаемое название для нового образа;
Убедимся, что мы создали новый контейнер, выполнив в терминале:
Далее запустим контейнер на основе нового образа и убедимся в том, что в нем установлена утилита nginx
:
Читайте также: Установка Nginx с виртуальными хостами (Virtual Hosts) в Debian 10.
На скриншоте выше видно, что команда whereis nginx
вывела на экран расположение исполняемого файла nginx
.
Запуск приложения внутри контейнера Docker
Чтобы запустить веб-сервер nginx
в контейнере, для начала создадим контейнер Docker с помощью команды:
При выполнении команды происходит следующее:
- создается новый контейнер Docker на основе образа
ubuntu-nginx
; - открывается интерактивная сессия терминала внутри контейнера с использованием Bash;
- порт 81 на хосте перенаправляет запросы на порт 80 контейнера, что позволяет веб-серверу
nginx
принимать запросы с основной ОС через порт 81.
Далее запустим сервер nginx
в контейнере в фоновом режиме:
После чего отсоединим командную строку контейнера от терминала основной ОС, последовательно нажав клавиши Ctrl + p и Ctrl + q.
На скриншоте выше видно, что контейнер продолжает свою работу после отсоединения интерактивной сессии от интерфейса командной строки CentOS Linux.
Проверка работы веб-сервера на хост-системе
Состояние веб-сервера nginx
можно проверить с помощью команды netstat
. Если в списке активных портов присутствует порт 80 или 81, значит, утилита запущена:
Также если сервер nginx
запущен, его стартовую страницу можно открыть в любом браузере. Для этого достаточно ввести в поисковой строке:
Остановка запущенного контейнера Docker
Чтобы остановить контейнер, выполним в терминале следующую команду:
Читайте также: 10 наиболее часто используемых команд управления Nginx, которые должен знать каждый администратор Linux.
Выводы
Возможности изоляции Docker упрощают разработчикам управление программами в различных вычислительных средах, обеспечивая их стабильную работу. Понимание процесса установки и запуска приложений в контейнерах Docker очень важно для тех, кто стремится оптимизировать процессы развертывания ПО. Чтобы более детально разобраться с работой в Docker, рекомендуем прочесть остальные статьи из этой серии.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
1 комментарий. Оставить новый
Команда docker commit сохраняет установленные приложения, но не сохраняет скачанные из Интернета пользователськие файлы. Как сделать так, чтобы сохранялись пользовательские файлы?