В первой части мы создали Flask API для нашей модели машинного обучения и разобрались с основами Docker и Virtual Machine.

В этой истории мы увидим, как докеризировать API и развернуть его.

давайте разберемся с некоторыми наиболее полезными и основными командами Docker

  1. FROM : создаст базовый образ, созданный с помощью Docker Hub.
  2. COPY : скопирует файлы в образ Docker.
  3. EXPOSE : покажет номер порта, который мы хотим использовать.
  4. WORKDIR : определяет рабочий каталог контейнера Docker.
  5. RUN: позволит вам выполнить команду внутри вашего образа Docker.
  6. CMD : определяет команду по умолчанию, которую пользователь может легко переопределить.

шаг 1 — Создать Dockerfile

Создайте новый файл и переименуйте его Dockerfile

прежде чем двигаться, мы должны внести некоторые изменения в приложение фляги

Заменять

if name=='__main__':
   app.run()

с участием

if name=='__main__':
   app.run(host='0.0.0.0')

Теперь внутри Dockerfile

FROM continuumio/anaconda3:4.4.0  
COPY . /usr/app
EXPOSE 5000                          
WORKDIR usr/app           
RUN pip install -r requirements.txt 
CMD python flask_app.py                    

Создайте свой файл requirements.txt с помощью следующей команды

pip freeze > requirements.txt

Шаг 2 — Создайте образ докера

docker build -t "<app_name>" . 
--------------------------------
Eg: docker build -t noteAuth_api .

Шаг 3 — Запустите контейнер Docker после сборки

docker run -p 8000:8000 noteAuth_api
  • p : сделать порт доступным для браузера извне

управлять полностью запущенным контейнером

docker ps   # You can see you container id , status and name etc

Если вы хотите получить доступ к IP-адресу определенного работающего контейнера

docker inspect "<Container_id>"

Убить и удалить контейнер

docker rm "<container_id>" -f

Если вы будете использовать flasgger_app.py из моегорепозитория github, созданного с помощью flasgger (pip install flasgger ) для пользовательского интерфейса. Вывод будет таким же, как в Doker

Поздравляю 🥳 ! Вы сделали это. Это все с Dockers.

На докерах можно многому научиться, но для начального уровня этого достаточно.

В следующей статье мы увидим Как развернуть конвейер машинного обучения в Google kubernates Engines.

Спасибо