如何在Windows上将文件从本地计算机复制到docker容器

时间:2016-10-28 21:47:40

标签: file docker copy containers local

我必须将数据文件从用户本地文件C:/ users / saad / bdd导入到docker容器(cassandra),我没有找到如何继续使用docker命令。 我正在开发Windows 7。

非常感谢你的帮助

8 个答案:

答案 0 :(得分:27)

使用docker cp

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

如果您不知道容器的名称是什么,可以使用以下方式找到它:

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

答案 1 :(得分:2)

如果您在Windows上使用docker-toolbox,请使用以下语法

docker cp / C / Users / Saad / bdd-restaurants cassandra:/ var / lib / docker / containers

答案 2 :(得分:2)

使用docker工具箱时并不是那么简单。因为docker工具箱只能访问C:\Users\文件夹,并且中间有一个Oracle Virtual Box Manager,当您复制文件夹时,它不会直接复制到容器,而是复制到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

建立它。

答案 3 :(得分:1)

使用docker工具箱时,似乎还有另一个与绝对路径有关的问题。

我正在使用本质上是MINGW64环境的“ Docker Quickstart Teminal”与容器进行通信。

如果我尝试将具有绝对路径的文件复制到容器,则会收到错误消息。

$ 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/

P.S .:由于缺少评论信誉,我将其发布为答案。

答案 4 :(得分:1)

如果您尝试将文件从Windows复制到EC2实例,请在cmd中使用以下命令(启用了腻子功能):

pscp -i "D:\path_to_ppk_key" c:\file_name ubuntu@**.***.**.*:/home/ubuntu/file 

然后您可以使用

复制到EC2中的docker
docker cp /home/ubuntu/file_name Docker_name:/home/ 

答案 5 :(得分:0)

您还可以在运行时使用volume将文件装载到容器中

docker run -v / users / saad / bdd:/ myfiles / tmp /

答案 6 :(得分:-1)

在这里输入答案

 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$

答案 7 :(得分:-1)

使用此命令将有助于将文件从主机复制到Docker容器。

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