Hello! 欢迎来到小浪云!


怎样在docker容器和宿主机之间复制文件? cp命令怎么用?


使用 docker cp 命令是容器与宿主机之间复制文件的常用方法,其操作类似于 linux 的 cp 命令。1. 将宿主机文件复制到容器:语法为 docker cp [宿主机路径] [容器id/名称]:[容器内目标路径],如 docker cp app.py my_container:/var/www/;2. 从容器复制文件到宿主机:语法顺序相反,如 docker cp my_container:/var/log/app.log ./logs/,可先进入容器查看文件结构;3. 支持复制整个目录,如 docker cp src my_container:/home/app/,复制大文件时速度可能受限于系统性能。

怎样在docker容器和宿主机之间复制文件? cp命令怎么用?

在 Docker 容器和宿主机之间复制文件,最常用的方法就是使用 docker cp 命令。这个命令类似于 Linux 的 cp 命令,但专门用于在容器和宿主机之间传输数据。


1. 把文件从宿主机复制到容器里

语法格式是这样的:

docker cp [宿主机上的路径] [容器ID或名称]:[容器内的目标路径]

举个例子,如果你想把本地的 app.py 文件复制到名为 my_container 的容器中的 /var/www/ 目录下,就可以这样写:

docker cp app.py my_container:/var/www/

注意几点:

  • 容器必须存在(可以是运行中,也可以是停止状态)
  • 路径要写对,特别是容器内部的路径,如果目录不存在会报错
  • 如果你不确定容器名字或 ID,可以用 docker ps 查看当前运行的容器,或者用 docker ps -a 看所有容器

2. 把文件从容器复制回宿主机

反过来也是一样操作,只是顺序换一下:

docker cp [容器ID或名称]:[容器内的文件路径] [宿主机上的目标路径]

比如你想把容器里的 /var/log/app.log 拿出来保存到当前目录下的 logs 文件夹:

docker cp my_container:/var/log/app.log ./logs/

这里有个小技巧:如果你不知道容器里具体有什么文件,可以先进入容器看看:

docker exec -it my_container /bin/bash

然后用 ls 找到你要复制的文件路径,再退出来执行 docker cp。


3. 复制整个目录也一样操作

不管是复制单个文件还是整个目录,docker cp 都支持。比如复制整个 src 文件夹进去:

docker cp src my_container:/home/app/

它会自动把整个目录结构一起复制进去。反过来也一样,你可以从容器里复制出一个目录。

需要注意的是:复制大文件或大量文件时可能会有点慢,这是正常现象,取决于你的系统性能和文件大小。


基本上就这些。只要记住方向和路径就行,docker cp 是个简单但非常实用的命令,平时调试、部署经常用得上。

相关阅读