docker - 谷歌云 docker 镜像文件被删除
问题描述
我正在为 Juypter 和 tensorboard 运行 docker 映像。每次VM实例停止时数据似乎都会被删除是否可以阻止这种情况发生我可以在网上找到任何可以让我这样做的东西?
解决方案
TL;DR:你没有持久化你的数据。
Docker 容器不会开箱即用地持久化数据,您需要明确告诉 docker 在容器被删除时持久化在容器内创建的任何数据。
您可以在 Docker 文档的使用卷页面中阅读更多内容。
如果要持久化数据,则需要执行以下步骤:
- 在要保留数据的 VM 内创建一个本地卷。该命令应在 GCE 实例上执行
mkdir -p /opt/data/jupyterdata
- 将文件夹的正确所有权设置为容器内用户使用的用户 ID。例如,假设您的容器使用 UID 1500 的用户tensorflow
lspvic/tensorboard-notebook
运行应用程序。因此您需要将文件夹的所有权设置为 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
需要该参数以避免SELINUX 问题
通过此步骤,您保存在/var/lib/jupyter
容器内文件夹中的数据将保存在/opt/data/jupyterdata
VM 内,因此不会再丢失数据。
推荐阅读
- python - 一对多关系中的多个外键 - SqlAlchemy
- javascript - 如何使用递归 JavaScript 映射方法从父/子关系创建新对象
- python - 用正则表达式替换数字中的分隔符
- javascript - React - 将“this”作为道具传递
- c# - 无法使用 Godaddy 详细信息从 C# 应用程序发送邮件
- python - 如何根据熊猫数据框中的另一列验证一列(可能使用熊猫模式),Python 3
- ios - Wifi 上的多点连接数据流问题
- python-3.x - 无法在简单的python套接字程序中使用来自客户端的IP地址进行连接
- jquery - 散点线在 y 轴和 x 轴上的“0”之前添加空格
- python - Google Colab:您已连接到 GPU 运行时,但未使用 GPU