如何在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中的根目录里面的内容,然后我们就可以按照我们想要的内容随便进行拷贝了

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

(0)

相关推荐

  • 详解在Docker容器内外互相拷贝数据的方法

    如何在Docker容器内外互相拷贝数据?  从容器内拷贝文件到主机上 复制代码 代码如下: docker cp <containerId>:/file/path/within/container /host/path/target 从主机上拷贝文件到容器内 1.用-v挂载主机数据卷到容器内 docker run -v /path/to/hostdir:/mnt $container 在容器内拷贝 cp /mnt/sourcefile /path/to/destfile 2.直接在主机上拷贝到容

  • 如何在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/po

  • 如何在docker容器内部安装kibana分词器

    步骤: 1.在虚拟机目录下新建docker-compose.yml文件,然后进入yml文件编辑 vi docker-compose.yml 2.在yml文件中添加如下代码: version: "3.1" services: elasticsearch: image: daocloud.io/library/elasticsearch:6.5.4 restart: always container_name: elasticsearch ports: - 9200:9200 #将分词器映

  • 详解如何在 docker 容器中捕获信号

    我们可能都使用过 docker stop 命令来停止正在运行的容器,有时可能会使用 docker kill 命令强行关闭容器或者把某个信号传递给容器中的进程.这些操作的本质都是通过从主机向容器发送信号实现主机与容器中程序的交互.比如我们可以向容器中的应用发送一个重新加载信号,容器中的应用程序在接到信号后执行相应的处理程序完成重新加载配置文件的任务.本文将介绍在 docker 容器中捕获信号的基本知识. 信号(linux) 信号是一种进程间通信的形式.一个信号就是内核发送给进程的一个消息,告诉进程

  • docker容器与宿主机的数据交互方式总结

    前言 在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 方式一.Docker cp命令 docker cp :用于容器与主机之间的数据拷贝. 语法 # 容器内文件 copy to 宿主机 docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- # 宿主机文件 copy to 容器内 docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_

  • docker容器数据卷之具名挂载和匿名挂载问题

    目录 什么是容器数据卷 为什么需要容器数据卷 使用 如何查看是否使用了数据卷 具名挂载和匿名挂载 指定路径挂载 具名挂载 匿名挂载 容器与容器之间的数据共享 --volumes-from 什么是容器数据卷 容器数据卷就是目录的挂载,将我们的容器的目录挂载到宿主机上,从而实现打通宿主机和容器之间的文件共享功能: 为什么需要容器数据卷 docker理念就是将应用和环境打包成一个镜像:但是数据怎么办呢?且不说数据库,一个项目在运行过程种肯定会产生大量的日志,这些日志对开发人员来说是非常重要的, 因为有

  • Docker容器数据卷的使用教程

    目录 前言 1.数据卷概念 2.数据卷作用 3.配置数据卷 4.多容器进行数据交换 5.数据卷容器 6.数据卷小结 总结 前言 本文是 Docker 容器的数据卷使用的简单教程,介绍了什么是数据卷.数据卷概念.以及如何使用数据卷等. 1.数据卷概念 数据卷简单来讲就是一个目录,它是由Docker daemon 挂载到容器中的,因此数据卷并不属于联合文件系统,也就是说数据卷里面的内容不会因为容器的删除而丢失.Docker启动后,容器内的文件和宿主机是隔离的,如果不使用docker commit 操

  • 在Docker容器中使用Arthas的详细步骤

    Arthas(阿尔萨斯) 能为你做什么? Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!是否有一个全局视角来查看系统的运行状况?

  • Docker容器中Mysql数据的导入/导出详解

    前言 Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决,但如果是运行在docker环境下的mysql呢? 解决办法其实还是用mysqldump命令,但是我们需要进入docker的mysql容器内去执行它,并且通过配置volumes让导出的数据文件可以拷贝到宿主机的磁盘上 所以操作步骤就可以分为: 配置docker的volumes 进入docker的mysql容器,导出数据文件 至于数据导入,太过简单,就不说了 先来看看mysqldump命令常见选项: --all-datab

  • 如何利用Docker容器实现代理转发与数据备份详解

    前言 我们将应用以Docker容器的方式部署到服务器上的时候,通常需要考虑两个方面的的问题:网络和存储. 网络方面,有些应用需要占用端口,而其中一部分应用甚至需要对外提供访问. 出于安全方面考虑,代理转发方式相对于直接开放防火墙端口方式更为合适. 存储方面,由于容器内部并不适合做数据持久化,所以一般通过挂载卷的方式将数据保存在服务器磁盘上. 但是服务器也不能保证绝对安全,所以数据也需要备份到云上. 代理转发 默认情况下容器之间的网络是互相隔离的,但是对于一些有关联的应用而言(web前端容器和服务

随机推荐