您好,有人可以帮我将docker(我是初学者)主机文件复制到我的jupyter / pyspark-notebook图像中。我已将这本笔记本从docker上拉下,以供公众使用。
我创建了一个包含此文件的Dockerfile。
FROM jupyter/pyspark-notebook:latest
ADD /home/abdoulaye/Documents/M2BIGDATA/Jaziri /bin/bash
我已将
/bin/bash
更改为.
,但看不到任何内容。当我执行
docker built
时,就像复制文件一样,如下面的输出所示。当我去笔记本电脑时,我确实发现了文件夹。如果可以找到这些复制的文件夹,我会检查快照,但是我很困惑。
显然,我在docker中有一个正在运行的笔记本,在y导航器中使用了它,但无法加载数据。我喜欢将数据复制到可以在笔记本中访问的位置。
最佳答案
您不能使用绝对路径进行复制,该路径应相对于Dockerfile,因此Dockerfile中此路径的/home/abdoulaye/Documents/M2BIGDATA/Jaziri
不正确。将文件复制到Dockerfile上下文,然后像复制
ADD M2BIGDATA/Jaziri /work
现在,第一件事,您不应该将文件从主机复制到可执行文件目录。
例如,
FROM alpine
copy hello.txt /bin/sh
如果您像这样进行复制,由于
sh
或bash
将被替换或损坏,因此在容器内运行命令会产生问题。第二,在构建具有无效上下文的Docker镜像时,它应该与Dockerfile所在的位置相同,因此最好运行放置Dockerfile的目录。
docker build -t my-jupyter .
第三,不要在容器内运行
cp
命令将文件从主机复制到容器。docker cp /home/abdoulaye/Documents/M2BIGDATA/Jaziri container_id:/work
它将您的文件复制到容器的
/work
路径。关于docker - 对Docker镜像中的复制文件有误解,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58599967/