Покажем, как использовать docker-compose для Python и Jupyter

2
7349
Добавить в избранное

В данной статье мы рассмотрим, что такое docker-compose, и как этот инструмент можно использовать для языка Python и Jupyter.

Команда compose – это инструмент для Docker, используемый для определения и запуска нескольких приложений-контейнеров, в которых файл compose используется для определения необходимых для приложения сервисов.

docker-compose

Docker-compose

При такой настройке приложения все сервисы можно запустить с помощью одной команды. Благодаря этому приложения могут быть созданы, если выполнить четыре простых шага:

  • Настроить Dockerfile для определения среды приложения.
  • Добавить файл требований для загрузки пакетов Python.
  • Создать файл docker-compose.yml для определения сервисов, которые нужны приложению. Они будут работать вместе в изолированной среде.
  • Запустить сборку docker-compose, чтобы создать приложение, и docker-compose, чтобы запустить это самое приложение.

Требования и настройка Dockerfile

Как оказалось, у дистрибутива Intel в Docker есть образы Python2 и Python3 либо с ядром, либо с полной конфигурацией. Python2 является более простым и понятным в плане работы с классами, поэтому в этой статье речь будет идти о версии Intel Python2, установленной на minicoda.

Образ установился в /home/notebooks. Также можно установить его как рабочий каталог с помощью команды WORKDIR, которая установит образ прямо в корневую папку. Это сэкономит пару секунд при запуске.

После настройки рабочего каталога адаптируем запуск, добавив файлы требований. Сначала файл был добавлен в каталог /app/directory, а затем вызван с помощью pip. Этот метод является одним из наиболее распространенных для установки зависимостей Python. Это также сокращает время загрузки, позволяя размещать любые зависимости Python в отдельном файле.

После настройки файла требований добавим строку для CMD. В CMD команда для контейнера выполняется согласно инструкции по умолчанию, если не указана другая команда. Исходя из этого, командой по умолчанию будет запуск jupyter notebook.

Определение сервисов

Следующим шагом после адаптации Dockerfile будет определение сервисов в файле YAML. Этот файл предназначен для настройки нескольких сервисов с помощью Docker, которые используются вместе со средой, уже указанной в Dockerfile. Таким образом, файл YAML будет использоваться для настройки сервисов, которые затем могут быть созданы и запущены с помощью одной команды.

На данный момент файл YAML является единственным сервисом, который позволяет настраивать Jupyter notebook для Intel Python2. Этому контейнеру обычно дают имя python_notebook и используют порт 8888.

Позже этот файл может быть изменен для добавления сервисов баз данных, других инструментов анализа данных и многого другого.

Сборка и запуск docker-compose

После обновления Dockerfile, добавления файла requirements.txt и создания YAML-файла контейнер Intel Python2 снова готов к запуску. Первая команда, которая выполняется при использовании docker-compose – сборка контейнера. Данная команда, как показано ниже, позволяет обновлять любые сервисы, если это необходимо, и создавать контейнеры. Команда должна выполняться каждый раз, когда нужно обновить сервисы, чтобы их можно было перенастроить перед использованием.

После настройки всех сервисов контейнером можно пользоваться. Команда, показанная ниже, запустит все необходимые сервисы для этого проекта. Для этого конкретного примера команда запустит python_notebook.

После выполнения вы получите URL-адрес для открытия текстового редактора Jupyter. Чтобы открыть его, скопируйте и вставьте ссылку в браузер. После завершения работы с приложением приведенную ниже команду можно использовать для завершения работы сервисов (должно быть запущено в другом окне терминала).

Или же можно использовать комбинацию клавиш Ctrl + C для выхода.

Оригинал

Материалы по теме:

Интересуетесь Data Science?

Подпишитесь на нашу рассылку, чтобы получать больше интересных материалов:

И не беспокойтесь, мы тоже не любим спам. Отписаться можно в любое время.




2 Комментарии

  1. Python2 является более простым и понятным в плане работы с классами, поэтому в этой статье речь будет идти о версии Intel Python2, установленной на minicoda.

    Прослезился.

Оставьте комментарий