Как скопировать файлы с локального компьютера в контейнер докеров на окнах

Мне нужно импортировать файлы данных из локального файла пользователя C:/users/saad/bdd в контейнер докеров (cassandra), я не нашел, как продолжать использовать команды докеров. Я работаю над окнами 7.

Большое спасибо за вашу помощь

Ответ 1

Используйте docker cp.

docker cp c:\path\to\local\file container_name:/path/to/target/dir/

Если вы не знаете, что имя контейнера, вы можете найти его, используя:

docker ps --format "{{.Names}}"

Ответ 2

Если вы используете панель инструментов docker для Windows, используйте следующий синтаксис

docker cp/C/Пользователи/Saad/bdd-restaurants cassandra:/var/lib/docker/контейнеры

Ответ 3

Это не так прямолинейно, когда используется панель инструментов докеров. Поскольку панель инструментов докеры имеет доступ только к папке C:\Users\, и между ними есть диспетчер виртуальных ящиков Oracle, когда вы копируете папку, она напрямую не копируется в контейнер, а вместо этого на установленный дескриптор тома с помощью машины Oracle VM. Например:

/mnt/sda1/var/lib/docker/volumes/19b65e5d9f607607441818d3923e5133c9a96cc91206be1239059400fa317611/_data

Как я обошел это, просто отредактировал мой DockerFile:

FROM cassandra:latest

ADD cassandra.yml /etc/cassandra/
ADD import.csv /var/lib/cassandra/
EXPOSE 9042

И построим его.

Ответ 4

При использовании панели инструментов Docker, похоже, возникает другая проблема, связанная с абсолютными путями.

Я общаюсь с контейнерами с помощью "Докера быстрого запуска Docker", который по сути является средой MINGW64.

Если я пытаюсь скопировать файл с абсолютным путем к контейнеру, я получаю сообщение об ошибке.

$ docker cp /d/Temp/my-super-file.txt container-name:/tmp/
copying between containers is not supported

Если я использую относительный путь, он просто работает.

$ cd /d/
$ docker cp Temp/my-super-file.txt container-name:/tmp/

PS: я публикую это как ответ из-за отсутствия репутации для комментария.

Ответ 5

Вот просто сделай это типа ответа

 belzebub-system:~/Documents/dead-exorcist/satan_ml$ docker ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                              NAMES
94ef16fa1d18        tensorflow/tensorflow   "/run_jupyter.sh --a…"   2 days ago          Up 2 days           6006/tcp, 0.0.0.0:8888->8888/tcp   adoring_engelbart
belzebub-system:~/Documents/dead-exorcist/satan_ml$ docker ps --format "{{.Names}}"
adoring_engelbart
belzebub-system:~/Documents/dead-exorcist/satan_ml$ docker cp  ~/Documents/dead-exorcist/satan_ml/satan_ml.tar.gz   adoring_engelbart:/notebooks
belzebub-system:~/Documents/dead-exorcist/satan_ml$

Ответ 6

Использование этой команды поможет скопировать файлы с хост-машины в докер-контейнер.

docker cp c:\abc.doc <containerid> :C:\inetpub\wwwroot\abc.doc

Ответ 7

если вы пытаетесь скопировать файл из windows в экземпляр EC2, используйте следующую команду в cmd (Putty включена):

pscp -i "D:\path_to_ppk_key" c:\file_name [email protected]**.***.**.*:/home/ubuntu/file 

Затем вы можете скопировать в Docker в EC2, используя

docker cp /home/ubuntu/file_name Docker_name:/home/