Разверните свой первый ноутбук Jupyter в Docker

Разверните свой первый ноутбук Jupyter в Docker

21 февраля 2022 г.

Есть только два способа прожить свою жизнь. Один как будто ничто не является чудом. Другой, как будто все это чудо. -Альберт Эйнштейн


В этой статье мы поговорим о том, что такое Docker, как он работает и как развернуть блокнот Jupyter в Docker Container.


Что такое Докер?


docker-about.pngСогласно  Веб-сайт Docker, Docker — это открытая платформа для разработки, доставки и запуска приложений. Docker позволяет вам отделить ваши приложения от вашей инфраструктуры, чтобы вы могли быстро доставлять программное обеспечение.


Другими словами, Docker — это платформа, которая предоставляет контейнер для запуска хоста и запуска ваших приложений, не беспокоясь о таких вещах, как зависимость от платформы. Он предоставляет инфраструктуру, называемую контейнером, в которой ваши платформы могут храниться и работать.


Из чего состоит Docker (в двух словах)


Здесь мы предоставим обзор того, что такое Docker. Если вам нужен исчерпывающий обзор того, как работает Docker, ознакомьтесь с этой статьей .


Архитектура Docker разделена на три (3) раздела:


  • Докер Engine (докерд)

  • docker-containerd (содержится)

  • докер-runc (выполнить)

docker-2.png


Docker Engine (докерд)


Механизм Docker состоит из демона Docker, интерфейса API и интерфейса командной строки Docker. Демон Docker (dockerd) постоянно работает как системная служба dockerd. Он отвечает за создание образов докеров.


Docker-контейнерd


containerd – это еще одна служба системного демона, которая отвечает за загрузку образов Docker и их запуск в качестве контейнера. Он предоставляет свой API для получения инструкций от службы dockerd.


Docker-runc


runc — это среда выполнения контейнера, отвечающая за создание пространств имен и cgroups, необходимых для контейнера. Затем он запускает команды контейнера внутри этих пространств имен. runc среда выполнения реализована в соответствии со спецификацией OCI.


Как развернуть блокнот Colab Jupyter в контейнере Docker


docker-0.png


В этой части мы собираемся построить простую модель классификатора, используя набор данных Iris, после чего мы импортируем код из colab и, наконец, мы устанавливаем и запускаем развертывание скрипта, содержащего модель, в контейнер докеров.


Модель здания


В этом разделе мы создадим модель классификатора, используя встроенный в sklearn [набор данных Iris] (https://scikit-learn.org/stable/auto_examples/datasets/plot_iris_dataset.html).


ШАГ 1. Создайте новый блокнот в google colab.


colab-opening.png


ШАГ 2 Импортируйте зависимости.


```javascript


импортировать matplotlib.pyplot как plt


из показателей импорта sklearn


из sklearn.datasets импортировать load_iris


из sklearn.model_selection импорта train_test_split


из sklearn.neighbors импортировать KNeighborsClassifier


ШАГ 3 Здесь мы собираемся загрузить набор данных радужной оболочки, разделить данные на обучающий набор и тестовый набор и построить нашу модель классификации.


```javascript


диафрагма = load_iris()


X = радужная оболочка.данные


у = радужная оболочка.цель


Выше мы загрузили набор данных Iris.


```javascript


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=4)


Выше мы использовали функцию train_test_split в sklearn, чтобы разделить набор данных радужной оболочки на обучающий набор и тестовый набор.


```javascript


knn = KNeighborsClassifier (n_neighbors = 10)


knn.fit(X,y)


Выше мы создали экземпляр модели классификатора KNeighbors и настроили гиперпараметр n_neighbours, чтобы он содержал десять (10) соседей.


Установка и развертывание в Docker


Это последняя глава, здесь мы собираемся установить настольное приложение docker и написать сценарии, которые будут развертывать наш сценарий в контейнере Docker.


ШАГ 1 Во-первых, вы загружаете скрипт Python, содержащий обученную модель, из colab.


colab-import-code.png


ШАГ 2 Теперь мы установим и настроим Docker. Вы можете установить Docker, используя эту__ссылку__ ШАГ 3 Теперь создайте каталог с именем iris-classifier. где мы собираемся разместить нашу модель и сценарии докеров.


Переместите файл python, содержащий модель классификации радужной оболочки, в только что созданную папку iris-classification.


В той же папке создайте текстовый файл с именем requirements. Ниже показано, что он будет содержать.


```javascript


sklearn==0.0


матплотлиб == 3.2.2


ШАГ 4 Здесь мы создадим Dockerfile, перейдем в основной каталог и создадим файл с именем Dockerfile без расширения. Dockerfile — это скрипт, который используется для создания образа контейнера. Ниже приведены элементы, которые будут содержаться в вашем Dockerfile.


```javascript


ОТ питона: 3.8


ДОБАВИТЬ требования.txt/


ЗАПУСК pip install -r /requirements.txt


ДОБАВИТЬ iris-classifier.py/


ENV PYTHONUNBUFFERED=1


CMD [ "python", "./iris-classifier.py" ]


Выше мы просто сказали докеру, что делать каждый раз, когда контейнер запускается.


ШАГ 5 Здесь мы собираемся создать наш файл Docker Compose. Файлы docker-compose — это просто файлы конфигурации, которые упрощают поддержку различных контейнеров Docker.


В каталоге вашего проекта создайте файл с именем docker-compose.yml. Ниже приведено содержимое, которое должно содержаться в файле.


```javascript


версия: "3"


Сервисы:


радужная оболочка-классификатор-восходящая линия:


в случае сбоя или перезапуска сервера контейнер перезапустится


перезапуск: всегда


container_name: радужная оболочка-классификатор-восходящая ссылка


изображение: iris-classifier-uplink


строить:


создаем образ классификатора из Dockerfile в текущем каталоге


контекст: .


Теперь в вашем каталоге iris-classifier у вас должно быть три (3) файла.


  • докер-compose.yml

  • Докерфайл


  • требования.txt

Запуск контейнера Docker


Это последний шаг, здесь мы запустим наш док-контейнер, используя команды, указанные ниже.


```javascript


сборка докеров


докер составить -d


Это конец, наша модель Python теперь работает в док-контейнере!


Полезные ссылки






Конечная заметка


Блокноты Jupyter — действительно хорошие места для создания моделей, и вы также можете использовать их в качестве серверных частей для приложений, к сожалению, они не работают вечно.


Docker поможет вам исправить это, повторно запустив блокнот Jupyter, когда он выйдет из строя, и это делает его инструментом, о котором стоит знать.


  • Впервые опубликовано [здесь] (https://edemgold.blog/how-to-deploy-a-jupyter-notebook-to-docker)*


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE