社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

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

Python入门到精通 • 2 年前 • 289 次点击  
👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇

前言

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

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

先上结果

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

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

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

https://www.docker.com/

然后我们鼠标在Developers上悬停之后点击Docs

接下来我们就进入到了docker docs,也可以直接进入这个网站

https://docs.docker.com/

然后我们需要在搜索栏中敲入我们想查询的东西,大家都是程序猿所以复制嘛很通俗的单词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或者容器名字:容器内路径 本地路径


来源:blog.csdn.net/weixin_43194885/article/

details/121524910

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

点击👆卡片,关注后回复【面试题】即可获取

在看点这里好文分享给更多人↓↓

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/146560
 
289 次点击