Файл изображения Google Cloud docker удаляется - PullRequest
0 голосов
/ 07 августа 2020

Я использую изображение docker для Juypter и tenorboard. Кажется, что данные удаляются каждый раз, когда экземпляр виртуальной машины останавливается, есть ли что-нибудь, чтобы предотвратить это, я мог бы найти в Интернете что-нибудь, что позволило бы мне это сделать?

1 Ответ

0 голосов
/ 07 августа 2020

TL; DR: вы не сохраняете свои данные.

Docker контейнеры не сохраняют данные из коробки, вам необходимо явно указать docker, чтобы сохранить любые данные, созданные внутри контейнера, когда контейнер удален.

Вы можете узнать больше на Использовать тома на странице Docker документации.

Если вы хотите сохранить данные, вам необходимо выполнить следующие шаги :

  1. Создайте локальный том внутри виртуальной машины, на котором вы хотите сохранить данные. Эта команда должна быть выполнена на экземпляре GCE

mkdir -p /opt/data/jupyterdata

Установите правильное право собственности на папку для идентификатора пользователя, который использует пользователь внутри вашего контейнера. Например, представим, что ваш контейнер lspvic/tensorboard-notebook запускает приложение с использованием пользователя tenorflow с UID 1500. Итак, вам нужно установить право собственности на вашу папку на UID 1500:

chown 1500:1500 /opt/data/jupyterdata -R

Измените команду docker run, чтобы смонтировать локальный каталог как том внутри контейнера. Например, представьте, что внутри вашего контейнера вы хотите сохранить файлы в / var / lib / jupyter (это пример), вам нужно будет изменить команду docker run следующим образом:
docker run -it --rm -p 8888:8888 \
-v /opt/data/jupyterdata:/var/lib/jupyter:Z \
lspvic/tensorboard-notebook

ПРИМЕЧАНИЕ: параметр :Z необходим, чтобы избежать проблем SE LINUX

Теперь ваши данные, сохраненные в папке /var/lib/jupyter внутри контейнера, будут сохраняется на /opt/data/jupyterdata внутри виртуальной машины, поэтому потеря данных больше не будет.

...