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容器文件拷贝内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • centos6使用docker部署zookeeper操作示例

    centos6使用docker部署zookeeper操作示例

    这篇文章主要介绍了centos6使用docker部署zookeeper操作,结合实例形式分析了centos6平台使用docker部署zookeeper相关命令与使用技巧,需要的朋友可以参考下
    2020-02-02
  • docker-compose安装及执行命令

    docker-compose安装及执行命令

    Docker Compose是一个用来定义和运行复杂应用的Docker工具,这篇文章主要介绍了docker-compose安装方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • Docker容器的调试技巧之docker logs与docker service logs解读

    Docker容器的调试技巧之docker logs与docker service logs

    这篇文章主要介绍了Docker容器的调试技巧之docker logs与docker service logs,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 解读Dockerfile中CMD和ENTRYPOINT是否可以混着用

    解读Dockerfile中CMD和ENTRYPOINT是否可以混着用

    在Dockerfile中,CMD和ENTRYPOINT可以混着用,CMD指定默认命令,ENTRYPOINT指定启动命令,CMD可以被docker run命令的参数覆盖
    2025-03-03
  • Docker部署nginx并修改配置文件的实现方法

    Docker部署nginx并修改配置文件的实现方法

    这篇文章主要介绍了Docker部署nginx并修改配置文件的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Docker搭建持续集成平台Jenkins的最简教程分享

    Docker搭建持续集成平台Jenkins的最简教程分享

    Jenkins 是一个广泛使用的开源持续集成工具,它能够自动化构建、测试和部署软件项目,本文我们将使用 Docker 搭建一个基于 Jenkins 的持续集成平台,感兴趣的可以了解下
    2024-03-03
  • Docker容器操作方法详解

    Docker容器操作方法详解

    Docker 在隔离的容器中运行进程。之前总结了Docker镜像的使用详解,本篇按照之前测试openGauss容器过程中总结出来使用Docker容器的常用命令
    2022-08-08
  • CentOS 7.2 下安装 Docker 1.12.3 版的详细方法

    CentOS 7.2 下安装 Docker 1.12.3 版的详细方法

    这篇文章主要介绍了CentOS 7.2 安装 Docker 1.12.3 版的相关资料,本文分步骤给大家介绍了CentOS 7.2 下安装 Docker 1.12.3 版的详细方法,需要的朋友可以参考下
    2016-11-11
  • 详解Docker镜像的基本操作方法

    详解Docker镜像的基本操作方法

    这篇文章主要介绍了Docker镜像的基本操作方法,主要包括获取镜像和运行镜像的相关知识,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • IDEA集成Docker实现一键部署的详细过程

    IDEA集成Docker实现一键部署的详细过程

    这篇文章主要介绍了IDEA集成Docker实现一键部署,Docker基于Windows集成IDEA,本文分步骤通过图文实例代码相结合给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08

最新评论