使用docker的数据量的图像
我对可复制的数据科学工作非常感兴趣。 为此,我现在正在探索Docker作为一个能够捆绑代码,数据和环境设置的平台。 我的第一个简单的尝试是一个Docker镜像,它包含了它需要的数据( 链接 )。
但是,这只是第一步,在这个例子中,数据是图像的一部分,因此当图像被加载到容器中时,数据已经在那里。 我的下一个目标是解耦分析和数据的代码。 据我所知,这意味着有两个容器,一个是代码( code
),另一个是数据( data
)。
对于code
我使用一个简单的Dockerfile
:
FROM continuumio/miniconda3 RUN conda install ipython
并为data
:
FROM atlassian/ubuntu-minimal COPY data.csv /tmp
data.csv
是我正在复制到图像的数据文件。
build立这两个图像后,我可以按照这个解决scheme中的描述运行它们:
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
启动networking后: docker network create data-testing
完成这些步骤之后,我可以从另一个容器中ping一个容器,也可能从code
访问data.csv
。 但我有这种感觉,这是一个次优的解决scheme,不能被认为是好的做法。
有一个可以访问数据的容器被认为是一个好的做法? 我读了一些关于数据量的内容,但是我不明白如何利用它们以及如何将它们转化为图像。
作为数据存储的容器的使用在很大程度上被认为是过时的并且被弃用。 你应该使用数据卷。
但数据量不是你可以变成图像的东西。 真的,这是没有必要的。
如果您想将.csv文件传递给某人,并让他们在他们的泊坞窗容器中使用,只需给他们.csv文件。
将文件放入容器并能够使用它的最简单方法是使用主机装入的卷。
在docker run
使用-v
标志,你可以指定一个本地文件夹或文件被装载到docker容器中。
比方说,你的/data/input.csv
映像希望在/data/input.csv
find一个文件。 当你调用docker run
,你想提供自己的input.csv文件,你会做类似的
docker run -v /my/file/path/input.csv:/data/ my-image
我没有提供这个示例中的所有选项,但是我正在说明-v
标志。 这将把你的本地文件系统的input.csv
并将其挂载到input.csv
容器中。 现在你的容器将能够使用你的数据副本。