docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面

学习总结

在学习过程中,碰到了docker与宿主机之间文件拷贝的问题,查阅相关资料,进行总结。

从容器里面拷贝文件到宿主机

如果要将文件从容器复制到宿主机,可以执行以下命令:

// docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
docker cp <Container ID>:<Path of file inside the container> <Path in the local machine>

例如:现有一个ID为cff5c18cb586的ubuntu容器,并且要将文件从容器中的路径/usr/src/app/file.txt 复制到本地计算机上的 /home/username/Desktop/folder,则可以使用命令:

docker cp cff5c18cb586:/usr/src/app/file.txt home/username/Desktop/folder/

如果要将文件粘贴到本地计算机的当前目录中,则只需使用命令:

docker cp cff5c18cb586:/usr/src/app/file.txt . (Don’t forget the dot)

如果要将所有文件从容器中的特定文件夹复制到本地计算机中的文件夹,请使用以下命令:

docker cp cff5c18cb586:/usr/src/app/ home/username/Desktop/folder/

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

如果要将文件从本地计算机复制到容器,则可以使用以下命令:

// docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
docker cp <Path in the local machine> <Container ID>:<Path of file inside the container>

例如,现有一个ID为cff5c18cb586的ubuntu容器,并且要将文件从本地计算机中的路径/home/username/Desktop/folder/file.txt复制到该容器中的/usr/src/app/中,则可以使用命令:

sudo docker cp /home/username/Desktop/folder/file.txt cff5c18cb586:/usr/src/app/

如果要将所有文件从本地计算机上的文件夹复制到容器中的文件夹,请使用以下命令-

sudo docker cp /home/username/Desktop/folder cff5c18cb586:/usr/src/app/

需要注意的是,不管容器有没有启动,拷贝命令都会生效。

查询容器相关信息

执行命令:

	docker ps

出现如下所示内容,其中NAMES字段就是容器名了。

[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

进入容器内,获取内部运行容器

执行命令:

//以交互模式启动一个容器,在容器内执行/bin/bash命令。
docker exec -it CONTAINER_NAME /bin/bash

补充:

1、使用Docker Attach

可以使用attach命令在Docker容器中访问bash shell。但是你的docker容器必须以/bin/bash启动。

使用以下语法获取Docker容器的shell访问。

sudo docker attach

例如,你的docker容器正在运行,其ID为cff5c18cb586,名称为software-6464688b4c。对attach方法使用以下命令之一。

使用容器ID:$ sudo docker attach cff5c18cb586
使用容器名称:$ sudo docker attach software-6464688b4c

2、使用Docker Exec

如果docker容器不是用/bin/bash命令启动的。那么就不能使用attach命令。

现在,需要使用exec命令在容器中创建bash。确保使用的是Docker版本为1.3之上。

使用以下语法获取Docker容器的shell访问权限。

sudo docker exec -it bash

例如,你的docker容器正在运行,其ID为cff5c18cb586,名称为software-6464688b4c。将以下命令之一与exec方法一起使用。

使用容器ID:$ sudo docker exec -it cff5c18cb586 bash
使用容器名称:$ sudo docker exec -it software-6464688b4c bash

退出容器

执行命令:

	exit  				//容器停止退出
	ctrl+P+Q 			//容器不停止退出
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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是要将文件贝到的容器内路径。 希望以上解答对您有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值