Docker容器中文件与本地相互复制拷贝方式

 更新时间:2023年11月04日 17:00:44   作者:社畜阿藏405  
这篇文章主要介绍了Docker容器中文件与本地相互复制拷贝方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

前言

遇到一些问题需要将docker内的容器拷贝到本地同时举一反三将本地文件或者文件夹拷贝到容器中的方法

这里主要讲解方法,故一法通万法通

先上结果

# 本地到服务器
docker cp 本地路径 容器id或者容器名字:容器内路径

# 服务器到本地
docker cp 容器id或者容器名字:容器内路径 本地路径

首先您既然看到了我的博客就说明我们要走一走正常的路,而不是在CSDN或者其他论坛甚至百度上面肆意驰骋试错,我们首先打开Docker官网

然后我们鼠标在Developers上悬停之后点击Docs 接下来我们就进入到了docker docs,也可以直接进入这个网站

然后我们需要在搜索栏中敲入我们想查询的东西,大家都是程序猿所以复制嘛很通俗的单词copy

这里我们会发现检索出来了很多东西,我们只需要找到我们想用的就好了

英语不是很好的话可以通过chrome的翻译功能,我就不是很好我们可以发现

我们成功找到了位置

重点

接下来我们要对这段话进行翻译

Extended description

Copy files/folders between a container and the local filesystem

Use ‘-‘ as the source to read a tar archive from stdin and extract it to a directory destination in a container. Use ‘-‘ as the destination to stream a tar archive of a container source to stdout.

扩展说明:

在容器和本地文件系统之间复制文件/文件夹 使用“-”作为源从标准输入读取 tar 存档并将其解压缩到容器中的目录目标。使用“-”作为将容器源的 tar 存档流式传输到标准输出的目标。

 docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
 # 解读命令 CONTAINER:SRC_PATH => 表示前面是容器:后面是容器的
 # 解读命令 DEST_PATH => 本地路径
 # 至于-的意思在上述文字中表述股这里不做赘述

如果没有tar的情况可以直接用

 docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
 # 解读命令 CONTAINER:SRC_PATH => 表示前面是容器:后面是容器的
 # 解读命令 DEST_PATH => 本地路径

测试!!!(因为在学习zookeeper这里用zookeeper作为例子)

下方的shell不做任何解释解释都在下方shell的# 后面的注释中了,我想偷懒嗯嗯不想整理了(没用“-”的原因是因为我没有tar

# 首先查看是否有我想要复制的文件,这里面是没有的
root@azang405:/# ls
azang_data  dev   lib    libx32      mnt   root  srv       tmp
bin         etc   lib32  lost+found  opt   run   swapfile  usr
boot        home  lib64  media       proc  sbin  sys       var

# 将zookeeper中的zkCLi.sh复制出来
root@azang405:/# docker cp my-zookeeper:/apache-zookeeper-3.7.0-bin/bin/zkCli.sh /

# 这里会发现他出现了在第一排最后一个位置成功!
root@azang405:/# ls
azang_data  etc    lib64       mnt   run       sys  zkCli.sh
bin         home   libx32      opt   sbin      tmp
boot        lib    lost+found  proc  srv       usr
dev         lib32  media       root  swapfile  var

# 我们先创建一个测试用的azang文件夹
root@azang405:/# mkdir azang

# 现在本地中查看是否创建成功
root@azang405:/# ls
azang       dev   lib32       media  root  swapfile  var
azang_data  etc   lib64       mnt    run   sys       zkCli.sh
bin         home  libx32      opt    sbin  tmp
boot        lib   lost+found  proc   srv   usr
root@2c82c6d0750e:/apache-zookeeper-3.7.0-bin/bin# ls
README.txt    zkCli.cmd  zkEnv.cmd  zkServer-initialize.sh  zkServer.sh            zkSnapShotToolkit.sh    zkSnapshotComparer.sh  zkTxnLogToolkit.sh
zkCleanup.sh  zkCli.sh   zkEnv.sh   zkServer.cmd            zkSnapShotToolkit.cmd  zkSnapshotComparer.cmd  zkTxnLogToolkit.cmd

#接下来我们进行复制 
root@azang405:/# docker cp /azang my-zookeeper:/apache-zookeeper-3.7.0-bin/bin/

# 重新查看 容器内部这里我们可以找到azang文件夹
root@2c82c6d0750e:/apache-zookeeper-3.7.0-bin/bin# ls
README.txt  zkCleanup.sh  zkCli.sh   zkEnv.sh                zkServer.cmd  zkSnapShotToolkit.cmd  zkSnapshotComparer.cmd  zkTxnLogToolkit.cmd
azang       zkCli.cmd     zkEnv.cmd  zkServer-initialize.sh  zkServer.sh   zkSnapShotToolkit.sh   zkSnapshotComparer.sh   zkTxnLogToolkit.sh

这里从容器中复制到容器外部不做演示

重复一下结果

# 本地到服务器
docker cp 本地路径 容器id或者容器名字:容器内路径

# 服务器到本地
docker cp 容器id或者容器名字:容器内路径 本地路径

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决docker run时候启动两个占有不同端口的问题

    解决docker run时候启动两个占有不同端口的问题

    这篇文章主要介绍了解决docker run时候启动两个占有不同端口的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker 数据持久化的三种方式小结

    Docker 数据持久化的三种方式小结

    本文主要介绍了Docker 数据持久化的三种方式小结,主要包括volume、bind mounts、tmpfs mounts这三种方式,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • docker镜像如何启动es/kibana

    docker镜像如何启动es/kibana

    这篇文章主要介绍了docker镜像如何启动es/kibana问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Docker 安装Jenkins全过程及踩坑指南

    Docker 安装Jenkins全过程及踩坑指南

    这篇文章主要介绍了Docker 安装Jenkins 踩坑全指南,本文通过图文示例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • docker mysql启动时执行初始化sql

    docker mysql启动时执行初始化sql

    这篇文章主要介绍了docker mysql启动时执行初始化sql问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05
  • 低版本Docker升级高版本Docker的详细教程及成功避坑

    低版本Docker升级高版本Docker的详细教程及成功避坑

    如果我们使用docker来管理容器,那么保持docker引擎的更新将会是十分重要的,下面这篇文章主要给大家介绍了关于低版本Docker升级高版本Docker的详细教程及成功避坑,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • docker容器内要启动两个进程时Dockerfile的实现代码

    docker容器内要启动两个进程时Dockerfile的实现代码

    这篇文章主要介绍了docker容器内要启动两个进程时Dockerfile的实现代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 利用 trap 在 docker 容器优雅关闭前执行环境清理的方案

    利用 trap 在 docker 容器优雅关闭前执行环境清理的方案

    这篇文章主要介绍了利用 trap 在 docker 容器优雅关闭前执行环境清理的问题,需要在容器的启动脚本中,加入 trap 指令,来完成容器在退出前需要做的所有事情,本文通过脚本示例给大家介绍的非常详细,需要的朋友参考下吧
    2021-12-12
  • Docker容器无法停止删除的解决方案

    Docker容器无法停止删除的解决方案

    这篇文章主要介绍了Docker容器无法停止删除的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker实现将镜像从1.2GB压缩到200MB的优化指南

    Docker实现将镜像从1.2GB压缩到200MB的优化指南

    作为一名在容器化领域摸爬滚打多年的开发者,深知Docker镜像大小对生产环境的影响,本文将详细记录优化历程,从问题分析到解决方案实施,从理论原理到实战技巧,感兴趣的小伙伴可以了解下
    2025-09-09

最新评论