首页 > 解决方案 > 谷歌云 docker 镜像文件被删除

问题描述

我正在为 Juypter 和 tensorboard 运行 docker 映像。每次VM实例停止时数据似乎都会被删除是否可以阻止这种情况发生我可以在网上找到任何可以让我这样做的东西?

标签: dockergoogle-cloud-platform

解决方案


TL;DR:你没有持久化你的数据。

Docker 容器不会开箱即用地持久化数据,您需要明确告诉 docker 在容器被删除时持久化在容器内创建的任何数据。

您可以在 Docker 文档的使用卷页面中阅读更多内容。

如果要持久化数据,则需要执行以下步骤:

  1. 在要保留数据的 VM 内创建一个本地卷。该命令应在 GCE 实例上执行

mkdir -p /opt/data/jupyterdata

  1. 将文件夹的正确所有权设置为容器内用户使用的用户 ID。例如,假设您的容器使用 UID 1500 的用户tensorflowlspvic/tensorboard-notebook运行应用程序。因此您需要将文件夹的所有权设置为 UID 1500:

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

  1. 修改您的 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需要该参数以避免SELINUX 问题

通过此步骤,您保存在/var/lib/jupyter容器内文件夹中的数据将保存在/opt/data/jupyterdataVM 内,因此不会再丢失数据。


推荐阅读