Docker 从容器中拷贝文件到宿主机中

现在公司用docker,有时候需要从容器中拷贝文件出来。

先上语法:

docker cp [OPTIONS] [CONTAINER_ID]:[SRC_PATH] [DEST_PATH]

语法是这么个写法,在实际的操作中,在写容器内的路径的时候并不能自动补全,所以实际上还需要还要先进入到容器才行。

下面就拿个实例来讲下:

1.在服务器上用有权限的用户,执行 docker ps 查看全部容器。

 

2.复制id对应容器的id,并执行 docker exec -it [容器id] /bin/bash  进入容器

 

3.假设我要复制的是common.log文件,那么我进入容器后就用find ./ -name "common.log"命令找到那个文件所在目录,假设查找结果是 ./mwbase/applogs/rtlog/OLS/common.log,执行exit退出docker容器

 

4.退出容器后,我希望复制到宿主机的/home/rhlog目录下重命名为yyy.log,那么最后的命令就是:

docker cp 容器id:容器内文件路径 目标路径
#示例
docker cp 6741xxxxxxxx:/xxxx/xxx/xxx/xxxx/common.log /home/rhlog/yyy.log  #注意没有"."

执行结果可以看到/home/rhlog目录拷贝得到了yyy.log,这样文件就拷贝出来辣。

 

 

 

 

 

 

### 回答1: 可以使用`docker cp`命令将容器中的文件拷贝宿主机。该命令的基本语法如下: ``` docker cp <容器名称或ID>:<容器内路径> <宿主机路径> ``` 其中,`<容器名称或ID>`是容器的名称或ID,`<容器内路径>`是要拷贝文件容器内的路径,`<宿主机路径>`是要将文件拷贝到的宿主机路径。 例如,要将容器`mycontainer`中的`/app/logs/app.log`文件拷贝宿主机的`/tmp`目录中,可以执行以下命令: ``` docker cp mycontainer:/app/logs/app.log /tmp/ ``` 注意,如果要将整个目录拷贝宿主机,需要加上`-r`参数: ``` docker cp -r mycontainer:/app/logs/ /tmp/ ``` 另外,如果要将宿主机中的文件拷贝容器中,可以将命令中的参数顺序反过来。例如,将宿主机的`/tmp/app.log`文件拷贝容器`mycontainer`的`/app/logs/`目录中,可以执行以下命令: ``` docker cp /tmp/app.log mycontainer:/app/logs/ ``` ### 回答2: 要将Docker容器中的文件拷贝宿主机,可以使用Docker的"docker cp"命令。下面是该命令的用法: ``` docker cp <容器ID或名称>:<容器文件路径> <宿主机目标路径> ``` 其中,"<容器ID或名称>"是指目标Docker容器的ID或名称。"<容器文件路径>"是指需要拷贝文件容器中的路径。"<宿主机目标路径>"是指拷贝宿主机上的目标路径。 例如,如果我们要将名为"my-container"的容器中的文件"/app/data.txt"拷贝宿主机上的"/host/data"目录中,可以执行以下命令: ``` docker cp my-container:/app/data.txt /host/data ``` 执行完毕后,容器中的文件"/app/data.txt"将被拷贝宿主机上的"/host/data"目录中。 需要注意的是,为了能够正确执行该命令,需要确保Docker容器处于运行状态。此外,还需要确保在宿主机容器之间拷贝文件的用户具有相应的权限。 ### 回答3: 将Docker容器中的文件拷贝宿主机可以通过在宿主机上使用docker cp命令来完成。具体步骤如下: 1. 首先,您需要知道要拷贝文件Docker容器内的路径。可以通过使用docker exec命令进入容器并使用ls命令查看容器文件路径。例如,要拷贝容器内的/mydata/file.txt文件,可以使用以下命令进入容器内查看路径: ``` docker exec -it <container_id> bash ls /mydata ``` 2. 在宿主机上使用docker cp命令来执行文件拷贝操作。以下是拷贝文件的命令示例: ``` docker cp <container_id>:/mydata/file.txt /path/on/host ``` 其中,<container_id>是Docker容器的ID,/mydata/file.txt是容器文件的路径,/path/on/host是要将文件拷贝到的宿主机路径。 3. 执行上述命令后,容器内的文件将被拷贝宿主机的指定路径中。 请注意,使用docker cp命令只能将文件容器拷贝宿主机,不能从宿主机拷贝文件容器。如果需要将文件宿主机传输容器中,可以使用以下命令: ``` docker cp /path/on/host <container_id>:/mydata/file.txt ``` 其中,/path/on/host是宿主机文件的路径,<container_id>是Docker容器的ID,/mydata/file.txt是要将文件拷贝到的容器内路径。 希望以上解答对您有帮助!
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值