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

Man*_*nou 15 containers copy file local docker

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

非常感谢您的帮助

Alv*_*jal 37

使用docker cp.

docker cp c:\path\to\local\file container_name:/path/to/target/dir/
Run Code Online (Sandbox Code Playgroud)

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

docker ps --format "{{.Names}}"
Run Code Online (Sandbox Code Playgroud)

  • 另外,我如何知道容器的确切路径? (2认同)
  • 请不要发布重复的答案,链接的问题中已经有很多好的答案。 (2认同)
  • 需要注意的一点是,如果您在Windows 7上使用Docker for Windows,并且您的容器是Windows机器,那么您需要先停止容器以复制文件.如果运行Windows容器是Hyper V容器,则不支持复制文件.但是,如果在Windows Server泊坞主机上运行,​​则相同的命令可以正常工作.https://github.com/moby/moby/issues/31606 (2认同)

小智 10

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

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

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

$ docker cp /d/Temp/my-super-file.txt container-name:/tmp/
copying between containers is not supported
Run Code Online (Sandbox Code Playgroud)

如果我使用相对路径,它就可以正常工作。

$ cd /d/
$ docker cp Temp/my-super-file.txt container-name:/tmp/
Run Code Online (Sandbox Code Playgroud)

PS:由于缺少评论的声誉,我将此作为答案发布。


Imr*_*bar 10

简单的方法:

DockerContainer 到 LocalMachine

$docker cp containerId:/sourceFilePath/someFile.txt C:/localMachineDestinationFolder
Run Code Online (Sandbox Code Playgroud)

本地机器到 DockerContainer

$docker cp C:/localMachineSourceFolder/someFile.txt containerId:/containerDestinationFolder
Run Code Online (Sandbox Code Playgroud)