docker容器的文件拷贝方式小结

 更新时间:2023年08月17日 11:12:50   作者:青凯平  
这篇文章主要给大家介绍了关于docker容器的文件拷贝方式,在使用Docker时,我们经常需要拷贝多个容器的文件系统,文中给出了详细的解决办法,需要的朋友可以参考下

一、已运行的容器拷贝方式

使用 docker cp 命令将文件从物理机复制到运行中的 Docker 容器中,或者从 Docker 容器中复制文件到物理机上。

例如,要将物理机上的文件 test.txt 复制到名为 mycontainer 的容器 /app 目录中,可以使用以下命令:

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

docker cp test.txt mycontainer:/app/test.txt

其中,test.txt 是要复制的本地文件,mycontainer 是容器的名称,/app/test.txt 是容器的文件路径。

如果要将 Docker 容器中的文件复制到物理机上,可以使用以下命令:

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

docker cp mycontainer:/app/test.txt test.txt

这条命令实现了将容器 mycontainer 中的 /app/test.txt 文件复制到本地目录下的 test.txt 文件中。

需要注意的是,docker cp 命令需要在 Docker 版本 1.8 或更高版本中才能使用。另外,在使用时需要确保对要复制的文件拥有足够的读写权限。

二、构建dockerfile时拷贝

Dockerfile 中可以直接使用 COPY 或 ADD 指令将本地文件复制到镜像中,原理是 Docker 在构建镜像时,会先将本地文件复制到一个临时目录中,然后再将该目录添加到镜像的文件系统中。

当使用 COPY 或 ADD 指令时,Docker 构建引擎会根据指定的源路径从构建上下文中查找相应的文件或目录,并将其复制到镜像中的目标路径中。如果源路径是一个目录,则目标路径必须以 / 结尾,否则会导致 COPY 或 ADD 操作失败。

例如,在下面的 Dockerfile 中:

FROM nginx:latest 
COPY index.html /usr/share/nginx/html/
ADD static.tar.gz /usr/share/nginx/html/

这个 Dockerfile 指定了 nginx:latest 作为基础镜像,然后将本地目录中的 index.html 文件复制到镜像中的 /usr/share/nginx/html/ 目录中。在构建镜像时,Docker 构建引擎会先将 index.html 复制到一个临时目录中,然后再将该目录添加到镜像的文件系统中,以此来实现将文件从本地复制到镜像中。

因此,直接在 Dockerfile 中使用 COPY 或 ADD 指令来将本地文件复制到容器中是可行的。而且,这样做还可以自动化地将文件复制到镜像中,使得在创建新容器时可以直接使用该镜像,并且不需要再手动复制文件。

附:Docker容器与本地文件相互拷贝

Docker容器中的文件可以与本地进行共享。

1、Docker容器中的文件拷贝至本地

#格式
#docker cp CONTAINER ID:容器目录 本地目录
#示例
docker ps -a  #查看本地容器ID 
sudo docker cp 52ea915e6527:/aha /home/aha2复制

2、本地文件拷贝至容器

#格式
#docker cp 本地路径 CONTAINER ID:容器目录
#示例
docker cp license.dat 52ea915e6527:/home

注意:

1、此命令是在容器外使用(shell或cmd)。

2、两个命令中容器 ID可以与容器name相互替换使用。

如下图所示,CONTAINER ID和NAMES 都可以在命令中使用。

总结

到此这篇关于docker容器的文件拷贝方式的文章就介绍到这了,更多相关docker容器文件拷贝内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker部署Mysql数据库步骤详解

    Docker部署Mysql数据库步骤详解

    Docker是一种流行的容器化平台,可以简化应用程序的部署和管理,在本博客中,我们将探讨如何使用Docker部署两个广泛使用的数据库:MySQL,我们将提供详细的步骤和相应的命令,以帮助您轻松地在Docker容器中设置和运行这个数据库
    2023-07-07
  • docker容器下配置jupyter notebook的操作

    docker容器下配置jupyter notebook的操作

    这篇文章主要介绍了docker容器下配置jupyter notebook的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 在CentOS 7 上为docker配置端口转发以兼容firewall的解决方法

    在CentOS 7 上为docker配置端口转发以兼容firewall的解决方法

    这篇文章主要介绍了在CentOS 7 上为docker配置端口转发以兼容firewall的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 详解Docker容器数据卷

    详解Docker容器数据卷

    这篇文章主要介绍了Docker容器数据卷的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • docker下迁移elasticsearch问题以及解决方案

    docker下迁移elasticsearch问题以及解决方案

    文章描述了如何将Elasticsearch数据从一个服务器迁移到另一个服务器,包括数据挂载、版本一致性、启动命令的匹配以及可能遇到的权限和节点故障问题的解决方法
    2024-11-11
  • Docker镜像优化打包速度思考

    Docker镜像优化打包速度思考

    本文主要介绍了Docker镜像优化打包速度思考,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • docker daemon远程连接设置详解

    docker daemon远程连接设置详解

    本篇文章主要介绍了docker daemon远程连接设置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Rabbitmq heartbea心跳检测机制原理解析

    Rabbitmq heartbea心跳检测机制原理解析

    这篇文章主要介绍了Rabbitmq heartbea心跳检测机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • docker初识之五分钟认识docker

    docker初识之五分钟认识docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。通过本文学习可以快速了解docker,本文介绍的非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-10-10
  • Docker搭建Gazee的实现示例

    Docker搭建Gazee的实现示例

    Gazee 是一个 Web 应用,专门用于阅读和管理数字漫画,本文主要介绍了Docker搭建Gazee的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04

最新评论