Работа с Docker-образами
Вы можете настроить окружение для выполнения вашего кода, используя Docker-образы.
Yandex DataSphere позволяет создавать репозитории Docker-образов в проекте, а также выбирать образ для проекта. Выбранный образ будет использоваться при запуске кода во всех ноутбуках проекта.
Создать Docker-образ
-
Выберите нужный проект в своем сообществе или на главной странице
DataSphere во вкладке Недавние проекты. -
В правом верхнем углу нажмите Создать ресурс. Во всплывающем окне выберите Docker-образ.
-
Выберите расположение Docker-образа:
Container RegistryDataSphereОбраз будет собран в реестре Yandex Container Registry. Запуск проекта с образом из реестра зависит от размера образа и занимает больше времени. Образ из реестра нельзя опубликовать в сообществе.
Для сборки образа в Container Registry администратор сообщества должен указать нужный реестр в настройках сообщества и включить сервисного агента.
Заполните поля:
-
Тег — имя и тег образа в формате
<имя>:<тег>, напримерtensorflow:1.0.0. -
Точка монтирования хранилища проекта — путь к директории, содержимое которой необходимо иметь в контексте сборки Docker-образа. Все содержимое этой директории будет занимать место на диске для сборки образа.
.— корневая директория. -
Описание — описание Docker-образа.
-
Шаблон Docker-образа — шаблон с минимальным набором инструкций для сборки рабочего Docker-образа с выбранной версией Python.
-
Файл Docker — набор инструкций для создания Docker-образа.
Отредактируйте содержимое поля. Например, следующий код создаст Docker-образ с
python_3_8на основе оригинального образа TensorFlow:FROM tensorflow/tensorflow:2.7.0-gpu RUN set -e \ && useradd -ms /bin/bash --uid 1000 jupyter \ && pip install --no-cache-dir --upgrade pip \ && pip install --no-cache-dir nptyping==1.4.4 pandas==1.4.1 opencv-python-headless==4.5.5.62 scikit-learn==1.0.2 \ && ln -s /usr/bin/python3 /usr/local/bin/python3
Docker-образ будет собран и оптимизирован для использования в проектах DataSphere. Такой Docker-образ можно опубликовать в сообществе. Ресурс будет размещен в выделенном хранилище, которое тарифицируется отдельно.
Заполните поля:
-
Размер диска, ГБ — желаемый размер хранилища в ГБ.
-
Имя образа — имя образа, например
tensorflow. -
Тег — тег образа, например
1.0.0. -
Точка монтирования хранилища проекта — путь внутри проекта, где будет размещаться созданный Docker-образ;
.— корневая директория. -
Описание — описание Docker-образа.
-
Шаблон Docker-образа — шаблон скрипта для установки Python.
-
Файл Docker — набор инструкций для создания Docker-образа.
Отредактируйте содержимое поля. Например, следующий код создаст Docker-образ с
python_3_8на основе оригинального образа TensorFlow:FROM tensorflow/tensorflow:2.7.0-gpu RUN set -e \ && useradd -ms /bin/bash --uid 1000 jupyter \ && pip install --no-cache-dir --upgrade pip \ && pip install --no-cache-dir nptyping==1.4.4 pandas==1.4.1 opencv-python-headless==4.5.5.62 scikit-learn==1.0.2 \ && ln -s /usr/bin/python3 /usr/local/bin/python3
-
-
(Опционально) Активируйте опцию Данные для аутентификации и укажите логин и пароль от аккаунта на Docker Hub.
-
Нажмите Собрать.
Будет создан Docker-образ с пакетами библиотеки TensorFlow для использования GPU в расчетах.
-
Выберите нужный проект в своем сообществе или на главной странице
DataSphere во вкладке Недавние проекты. -
В блоке Ресурсы проекта выберите
Docker-образ.
Совет
Библиотека образов Docker Hub
- Создайте подсеть.
- Создайте NAT-шлюз для доступа в интернет.
- Создайте сервисный аккаунт с ролью
vpc.user. - В настройках проекта добавьте подсеть и сервисный аккаунт.
Вы также можете использовать базовые образы из других библиотек.
Применить Docker-образ для проекта
-
Выберите нужный проект в своем сообществе или на главной странице
DataSphere во вкладке Недавние проекты. -
В блоке Ресурсы проекта выберите
Docker-образ. -
Напротив нужного образа нажмите
и выберите Активировать. -
Откройте проект в JupyterLab и дождитесь окончания загрузки.
-
Откройте вкладку с ноутбуком и убедитесь, что окружение пользовательского образа доступно в вашем проекте. Например, для образа TensorFlow создайте и запустите ячейку со следующим кодом:
import tensorflow as tf tf.config.list_physical_devices('GPU') -
Выберите конфигурацию ВМ. Например, для запуска образа TensorFlow выберите конфигурацию с GPU g1.1. В виджете ВМ в поле Окружение должно быть указано полное имя образа.
Результат:
... [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
Чтобы вернуться к окружению по умолчанию:
-
Выберите нужный проект в своем сообществе или на главной странице
DataSphere во вкладке Недавние проекты. - В блоке Ресурсы проекта выберите
Docker-образ. - Напротив образа по умолчанию нажмите
и выберите Активировать.
Поделиться Docker-образом
Поделиться Docker-образом в сообществе может только администратор сообщества, и только если образ был размещен в DataSphere.
Подробнее о ролях, действующих в DataSphere, см. в разделе Управление доступом в DataSphere.
-
Выберите нужный проект в своем сообществе или на главной странице
DataSphere во вкладке Недавние проекты. - В блоке Ресурсы проекта нажмите
Docker-образ. - Выберите нужный образ в списке.
- Перейдите на вкладку Доступ.
- Включите опцию видимости напротив названия сообщества, в котором нужно поделиться Docker-образом.
Чтобы Docker-образ стал доступен для работы в другом проекте, администратор проекта должен добавить его на вкладке Доступные.
Удалить Docker-образ
Нельзя удалить Docker-образ, если он доступен для всего сообщества.
-
Выберите нужный проект в своем сообществе или на главной странице
DataSphere во вкладке Недавние проекты. - В блоке Ресурсы проекта нажмите
Docker-образ. - В списке Docker-образов выберите тот, который хотите удалить.
- Нажмите
и выберите Удалить. - Нажмите Подтвердить.
Отобразится сообщение о том, что ресурс удален.
Важно
Фактически удаление ресурсов может занимать до 72 часов.