首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用docker的数据卷的图像

使用docker的数据卷的图像
EN

Stack Overflow用户
提问于 2017-03-21 22:13:27
回答 1查看 241关注 0票数 0

我对可重现的数据科学工作非常感兴趣。为此,我现在正在探索Docker作为一个平台,它可以捆绑代码、数据和环境设置。我的第一个简单尝试是创建一个包含所需数据的Docker镜像(link)。

然而,这只是第一步,在本例中,数据是图像的一部分,因此当图像加载到容器中时,数据已经存在。我的下一个目标是解耦分析和数据的代码。据我所知,这意味着有两个容器,一个包含代码(code),另一个包含数据(data)。

对于code,我使用了一个简单的Dockerfile

代码语言:javascript
运行
复制
FROM continuumio/miniconda3 
RUN conda install ipython

而对于data

代码语言:javascript
运行
复制
FROM atlassian/ubuntu-minimal
COPY data.csv /tmp

其中data.csv是我要复制到映像中的数据文件。

构建完这两个镜像后,我可以按照this解决方案中的描述运行它们:

代码语言:javascript
运行
复制
docker run -i -t --name code --net=data-testing --net-alias=code drorata/minimal-python /bin/bash
docker run -i -t --name data --net=data-testing --net-alias=data drorata/data-image /bin/bash

启动网络后:docker network create data-testing

完成这些步骤后,我可以从一个容器ping另一个容器,并且可能还可以从code访问data.csv。但我有一种感觉,这是一个次优的解决方案,不能被认为是良好的实践。

拥有可以访问数据的容器的最佳实践是什么?我读了一些关于data volumes的文章,但我不明白如何使用它们,以及如何将它们转换为图像。

EN

回答 1

Stack Overflow用户

发布于 2017-03-21 22:22:33

在这一点上,容器作为数据存储的使用在很大程度上被认为是过时的和不推荐的。您应该改用数据卷。

但数据卷不是可以转换为图像的东西。真的,没有必要这样做。

如果您希望将.csv文件传递给某人,并让他们在其docker容器中使用该文件,只需将.csv文件提供给他们即可。

将文件放入容器并使用它的最简单方法是使用主机挂载的卷。

使用docker run上的-v标志,您可以指定要挂载到停靠容器中的本地文件夹或文件。

例如,假设您的docker映像希望在/data/input.csv中找到一个文件。当您调用docker run并希望提供您自己的input.csv文件时,您可以这样做

docker run -v /my/file/path/input.csv:/data/ my-image

在这个示例中,我没有提供您所展示的所有选项,但我演示了-v标志。这将获取本地文件系统的input.csv并将其挂载到docker容器中。现在,您的容器将能够使用该数据的副本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42929580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档