容器与宿主机间文件相互拷贝|学习笔记

简介: 快速学习容器与宿主机间文件相互拷贝

开发者学堂课程【深入解析 Docker 容器化技术容器与宿主机间文件相互拷贝】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/659/detail/10944


容器与宿主机间文件相互拷贝

 

容器与宿主机间文件相互拷贝

接下来进行容器的其他操作讲解,如容器与宿主机的文件相互拷贝,下面画图进行说明:

比如在宿主机 centos 上创建容器 c1,如果想将宿主机上的1.txt 文件复制到容器 c1,可以使用 docker cp 命令,或者另外一种可能将容器 c1的2.txt 文件拷贝到宿主机上,如图:

image.png

那么如果需要将文件拷贝到容器可以使用 cp 命令,命令为 docker cp 指定需要拷贝的文件或者目录,再空格指定要将文件拷贝到的目的容器名称以及那个容器目录下。反过来将文件从容器内拷贝出来,则为 docker cp 加上容器名称,容器目录,以及目录下的文件,和需要拷贝到宿主机的那个目录下,下面进行命令演示。

因为之前讲解时本机上面已经没有容器了,所以首先要创建一个容器,如:

[root@localhost ~]# docker run -itd --name=c1 centos /bin/bash

g5adc191b4bf78504 Scaae5bc3cf a3d3cd2 5c2ff597 257 8f 24baa39037b5d353

创建 c1后进行查看,如:

[root@localhost ~]# docker ps

CONTAINER ID  IMAGE    COMMAND  CR…           NAMES

c5adc191b4bf  centos   "/bin…      2 seconds ago…    c1

说明创建成功。然后在 c1容器下创建1.txt 文件,如:

[root@localhost ~]# touch 1.txt

[root@localhost ~]# ll

total 12

-rw-r--r--. 1 root   0 Sep 18 22:35 1.txt

此时进入容器中,可以看到 c1容器的 root 目录下什么都没有,如:

[root@localhost ~]# docker exec -it /c1/bin/bash

[root@c5adc191b4bf ~]# cd root/

[root@c5adc191b4bf ~]# ll

total 4

-rw-------. 1 root 3415 Aug 1 01:10 anaconda-ks.cfg

接下来再拷贝1.txt 文件到容器 c1的 root 目录,如:

[root@localhost ~]# docker cp 1.txt c1:/root

回到容器中再查看 root 下的文件会发现出现1.txt 文件,如:

[root@c5adc191b4bf ~]# ll

total 4

-rw-r--r--. 1 root    0 Sep 19 05:35 1.txt

-rw-------. 1 root 3415 Aug 1 01:10 anaconda-ks.cfg

说明文件拷贝成功。那么从容器拷贝到宿主机也是可以的,首先要做容器 c1下创建文件2.txt,如:

[root@c5adc191b4bf ~]# touch 2.txt

[root@c5adc191b4bf ~]# ll

total 4

-rw-r--r--. 1 root    0 Sep 19 05:35 1.txt

-rw-r--r--. 1 root    0 Sep 19 05:36 2.txt

……

此时2.txt 创建成功。然后将c1容器的root目录下2.txt 文件拷贝到宿主机 root 目录下,如:

[root@localhost ~]# docker cp c1:/root/2.txt /root

然后再查看宿主机的全部文件,如:

[root@localhost ~]# ll

total 12

-rw-r--r--. 1 root    0 Sep 18 22:36 2.txt

可以查看到2.txt 文件,说明拷贝成功。以上就是容器与宿主机间文件相互拷贝的讲解内容。

相关文章
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
应用服务中间件 nginx Docker
Docker同一台宿主机容器通信-通过容器名称互联
本文详细介绍了如何通过容器名称实现同一宿主机上容器间的互联,并提供了实战案例。首先,文章解释了容器间通过自定义名称访问的原理,随后演示了创建并连接Tomcat与Nginx容器的具体步骤。此外,还讨论了配置中可能出现的问题及解决方案,包括避免硬编码IP地址和使用自定义容器别名来增强系统的灵活性与可维护性。通过这些实践,展示了如何高效地配置容器间通信,确保服务稳定可靠。
936 1
Docker同一台宿主机容器通信-通过容器名称互联
|
运维 JavaScript Linux
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。
759 2
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
4244 1
|
关系型数据库 MySQL 应用服务中间件
[Docker]容器内文件修改
【8月更文挑战第21天】[Docker]容器内文件修改
1106 13
|
Shell Docker 容器
10-19|使用date命令: 你可以在容器内使用date命令来设置时间,但为了防止这个更改影响宿主机,你不能以特权模式运行容器。我没有加特权模式的时候,使用此命令告诉我没权限啊
10-19|使用date命令: 你可以在容器内使用date命令来设置时间,但为了防止这个更改影响宿主机,你不能以特权模式运行容器。我没有加特权模式的时候,使用此命令告诉我没权限啊
|
Docker 容器
6-16|docker怎么把容器内的文件传出来
6-16|docker怎么把容器内的文件传出来
|
Kubernetes 容器 Perl
在k8S中,如何实现Pod中容器的文件和宿主机之间相互拷贝?
在k8S中,如何实现Pod中容器的文件和宿主机之间相互拷贝?
|
8月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1197 108
下一篇
开通oss服务