В этой статье будет показано, как поместить свое веб-приложение в Docker-контейнер и упростить задачу запуска новых контейнеров, создав Dockerfile.
Так как в рамках этой статьи нас интересует помещение веб-приложения в контейнер, а не его создание, мы будем использовать один из самых простых способов создания веб-приложения — Python + Flask.
Действия будут выполняться на Ubuntu 20.04 с установленными Python3 и pip3.
Если вы хотите узнать, как правильно установить Python и приложение для удобной разработки — прочитайте статьи по правильной установке Python на Windows или Linux.
Содержание:
- Создание веб приложения в основной системе
- Запуск веб приложения в основной системе
- Создание Dockerfile
- Создание образа из Dockerfile
- Запуск контейнера из созданного образа
- Проверка сервера внутри контейнера
- Выводы
Создание веб приложения в основной системе
Перед помещением в контейнер давайте создадим простое веб-приложение на Flask и запустим его на нашей системе.
Создадим каталог:
Установим Flask с помощью pip3:
Создадим в этом каталоге файл Пайтон server.py с Flask-сервером в любом текстовом редакторе:
Запуск веб-приложения в основной системе
Перед помещением в контейнер проверим работоспособность нашего веб-приложения.
Теперь в браузере переходим по адресу http://127.0.0.1:5000/ и видим сообщение от сервера:
Поздравляю, наш сервер работает! Теперь можно нажать CTRL + C для его остановки и приступить к настройке контейнера Docker.
Создание Dockerfile
Начнем размещение нашего приложения с создания Dockerfile — он позволит просто создавать новые контейнеры нашего приложения без необходимости каждый раз настраивать иx заново.
В любом текстовом редакторе создаем Dockerfile с таким содержимым:
FROM — указывает на каком образе основывать новый образ.
RUN — выполняет в консоли образа команды для настройки. Чаще всего используется для установки компонентов. Выполняется при создании образа системы (не выполняются при каждом запуске).
COPY — копирует из основной системы какие-либо файлы внутрь контейнера. В нашем случае копирует все содержимое текущей папки в основной системе в папку /web-server контейнера.
CMD — выполняет одну основную команду в консоли. В нашем случае команда запускает сервер. Выполняется при каждом запуске контейнера.
Создание образа из Dockerfile
После создания Dockerfile мы можем добавить его в качестве образа следующей командой:
Теперь в списке загруженных образов появится наш новый созданный образ.
Запуск контейнера из созданного образа
Осталось только запустить новый контейнер, основываясь на созданном из Dockerfile образе.
Все параметры для запуска контейнера разобраны в этой статье.
Проверка сервера внутри контейнера
Теперь, когда контейнер запущен, можно снова зайти на http://127.0.0.1:5000/ и получить тот же результат. Но теперь, как мы видим по выводу в консоли — наш запрос обрабатывается сервером внутри контейнера.
Для запуска контейнера в фоновом режиме можно использовать флаг -d.
Выводы
Теперь вы знаете, как можно поместить свое веб-приложение внутрь контейнера Docker и создать образ своего сервера с помощью Dockerfile.
Как установить 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.