Неправильное понимание файла копии в изображениях докера - PullRequest
1 голос
/ 29 октября 2019

Здравствуйте, может кто-нибудь попросит помочь мне скопировать файл хоста docker (я начинающий) в образы jupyter / pyspark-notebook. Я вытащил этот блокнот из докера как общедоступный.

Я создал Dockerfile, который содержит это.

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

Я изменил /bin/bash на ., но ничеговиденкогда я выполняю docker built, это похоже на копирование файлов, как показано в выводе ниже. img когда я зашел в свой блокнот, я заметил, что нашел папки. Я проверяю свой моментальный снимок, если я могу найти эти скопированные папки, но я очень запутался.

Ясно, что у меня в докере запущена записная книжка, я использую ее в y навигаторе, но не могу загрузить данные. Мне нравится копировать данные там, где я могу получить к ним доступ в блокноте. img2

1 Ответ

1 голос
/ 29 октября 2019

Вы не можете копировать, используя абсолютный путь, путь должен быть относительно Dockerfile, поэтому /home/abdoulaye/Documents/M2BIGDATA/Jaziri этот путь внутри Dockerfile неверен. Скопируйте файл в контекст Dockerfile, а затем скопируйте, как

ADD M2BIGDATA/Jaziri /work

Теперь. Во-первых, вам не следует копировать файлы с хоста в каталог исполняемых файлов.

Например,

FROM alpine
copy hello.txt /bin/sh

Если вы скопируете таким образом, это создаст проблему для запуска команды внутри контейнера, так как sh или bash будет заменен или поврежден.

2-й, пока вы создаете образ докера с недопустимым контекстом, он должен быть таким же, как и ваш Dockerfile, поэтому лучше запустить каталог, в который вы помещаете Dockerfile.

docker build -t my-jupyter .

3-ий, вы не должны запускать команду cp внутри контейнера для копирования файлов с хоста наконтейнер.

docker cp /home/abdoulaye/Documents/M2BIGDATA/Jaziri container_id:/work

он скопирует ваши файлы в /work путь контейнера.

...