当前位置: 首页 > 编程笔记 >

如何在Docker容器内外互相拷贝数据

双志强
2023-03-14
本文向大家介绍如何在Docker容器内外互相拷贝数据,包括了如何在Docker容器内外互相拷贝数据的使用技巧和注意事项,需要的朋友参考一下

从容器内拷贝文件到主机上

[root@oegw1 soft]# docker ps
CONTAINER ID    IMAGE        COMMAND        CREATED       STATUS       PORTS        NAMES
8d418a7b6021    postgres      "/docker-entrypoint.  7 hours ago     Up 7 hours               test1  
[root@oegw1 soft]# docker exec -t -i 8d418a7b6021 /bin/bash
root@oegw1:/var/lib/postgresql# pwd
/var/lib/postgresql
root@oegw1:/var/lib/postgresql# ls
data
root@oegw1:/var/lib/postgresql# exit
exit
[root@oegw1 soft]# docker cp 8d418a7b6021:/var/lib/postgresql/data /opt/soft/

完成拷贝

docker run -v /opt/soft:/mnt 8d418a7b6021

从主机上拷贝文件到容器内

1.用-v挂载主机数据卷到容器内

通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。

[root@oegw1 soft]# docker run -it -v /opt/soft:/mnt postgres /bin/bash

这种方式的缺点是只能在容器刚刚启动的情况下进行挂载

2.直接在主机上拷贝到容器物理存储系统

[root@oegw1 soft]# docker ps
CONTAINER ID    IMAGE        COMMAND        CREATED       STATUS       PORTS        NAMES
8d418a7b6021    postgres      "/docker-entrypoint.  8 hours ago     Up 8 hours               test1        
[root@oegw1 soft]# docker inspect -f  '{{.Id}}' 8d418a7b6021
8d418a7b60216ed677ada5ca5fe1e82a953af6702837e8e05c95b16d23241d47

在docker中,其实是映射到/var/lib/docker/devicemapper/mnt/8d418a7b60216ed677ada5ca5fe1e82a953af6702837e8e05c95b16d23241d47/这个文件夹中的这个文件下面就是docker中的根目录里面的内容,然后我们就可以按照我们想要的内容随便进行拷贝了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 主要内容:到底是浅拷贝还是深拷贝对于基本类型的数据以及简单的对象,它们之间的拷贝非常简单,就是按位复制内存。例如: b 和 obj2 都是以拷贝的方式初始化的,具体来说,就是将 a 和 obj1 所在内存中的数据按照二进制位(Bit)复制到 b 和 obj2 所在的内存, 这种默认的拷贝行为就是 浅拷贝 ,这和调用 memcpy() 函数的效果非常类似。 对于简单的类,默认的拷贝构造函数一般就够用了,我们也没有必要再显式地定义一

  • 浅拷贝 对于对象或数组类型,当我们将a赋值给b,然后更改b中的属性,a也会随着变化。 也就是说,a和b指向了同一块堆内存,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝。 深拷贝 那么相应的,如果给b放到新的内存中,将a的各个属性都复制到新内存里,就是深拷贝。 也就是说,当b中的属性有变化的时候,a内的属性不会发生变化。 参考链接: 深拷贝与浅拷贝的实现(一) javaScript中浅拷

  • 一、引言 对象拷贝(Object Copy)就是将一个对象的属性拷贝到另一个有着相同类类型的对象中去。在程序中拷贝对象是很常见的,主要是为了在新的上下文环境中复用对象的部分或全部数据。Java中有三种类型的对象拷贝:浅拷贝(Shallow Copy)、深拷贝(Deep Copy)、延迟拷贝(Lazy Copy)。 二、浅拷贝 1、什么是浅拷贝 浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着

  • 问题内容: 我有一个完全在MacBook本地运行的Webapp。 Webapp具有实现RESTful API的前端(Angular / Javascript)和后端(Python / Django)。 我已经对后端进行了Docker化,以使其完全独立于Docker容器并暴露端口8000。我将此端口本地映射到4026。 现在我需要对前端进行Docker化。但是,如果我在本地主机上运行了这两个dock

  • 我们有一个PDF链接,可以通过chrome内置的PDF查看器在浏览器中打开。我们正在尝试验证此PDF中的文本,无需使用PDFBox或将文件下载到本地系统。 我们的尝试使用将“CTRL A”和“CTRL C”(大写和小写版本)发送到浏览器。(这会导致一个大的蓝色框选择,而不是我们在尝试手动复制粘贴时看到的行选择)。我们认为两个命令之间有足够的2秒延迟,但文本内容不会显示在系统剪贴板中(通过粘贴到记事

  • 问题内容: 我开始使用Docker。我正在使用WordPress基本映像和docker-compose。 我正在尝试使用ssh进入其中一个容器,以检查在初始构建期间创建的文件/目录。我试着跑步,但是没有做任何事情。即使这样做,我还是希望有一个可以遍历目录结构的控制台,而不是运行单个命令。用Docker执行此操作的正确方法是什么? 问题答案: 将允许您连接到Docker容器,但这与并不是真的一样。例