您好,有人可以帮我将docker(我是初学者)主机文件复制到我的jupyter / pyspark-notebook图像中。我已将这本笔记本从docker上拉下,以供公众使用。

我创建了一个包含此文件的Dockerfile。

FROM jupyter/pyspark-notebook:latest
ADD /home/abdoulaye/Documents/M2BIGDATA/Jaziri /bin/bash

我已将/bin/bash更改为.,但看不到任何内容。
当我执行docker built时,就像复制文件一样,如下面的输出所示。
docker - 对Docker镜像中的复制文件有误解-LMLPHP
当我去笔记本电脑时,我确实发现了文件夹。如果可以找到这些复制的文件夹,我会检查快照,但是我很困惑。

显然,我在docker中有一个正在运行的笔记本,在y导航器中使用了它,但无法加载数据。我喜欢将数据复制到可以在笔记本中访问的位置。 docker - 对Docker镜像中的复制文件有误解-LMLPHP

最佳答案

您不能使用绝对路径进行复制,该路径应相对于Dockerfile,因此Dockerfile中此路径的/home/abdoulaye/Documents/M2BIGDATA/Jaziri不正确。将文件复制到Dockerfile上下文,然后像复制

ADD M2BIGDATA/Jaziri /work

现在,第一件事,您不应该将文件从主机复制到可执行文件目录。

例如,
FROM alpine
copy hello.txt /bin/sh


如果您像这样进行复制,由于shbash将被替换或损坏,因此在容器内运行命令会产生问题。

第二,在构建具有无效上下文的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/

10-16 09:18