В первой части мы создали Flask API для нашей модели машинного обучения и разобрались с основами Docker и Virtual Machine.
В этой истории мы увидим, как докеризировать API и развернуть его.
давайте разберемся с некоторыми наиболее полезными и основными командами Docker
- FROM : создаст базовый образ, созданный с помощью Docker Hub.
- COPY : скопирует файлы в образ Docker.
- EXPOSE : покажет номер порта, который мы хотим использовать.
- WORKDIR : определяет рабочий каталог контейнера Docker.
- RUN: позволит вам выполнить команду внутри вашего образа Docker.
- 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.
Спасибо