Docker数据备份恢复实现过程详解

数据的备份操作很容易,执行如下命令:

docker run --volumes-from mydata --name backupcontainer -v $(pwd):/backup/ ubuntu
tar cvf /backup/backup.tar /usr/share/nginx/html/

命令解释:

首先使用--volumes-from连接待备份容器。

-v参数用来将当前目录挂载到容器的/backup目录下。

接下来,将容器中/usr/share/nginx/html目录下的内容备份到/backup目录下的backup.tar文件中,由于已经设置将当前目录映射到容器的/backup目录,因为备份在容器/backup目录下的压缩文件在当前目录下可以立马看到。

执行结果如下:

恢复

创建容器

首先创建一个容器,这个容器就是要使用恢复的数据的容器,我这里创建一个nginx容器,如下:

docker run -itd -p 80:80 -v /usr/share/nginx/html/ --name nginx3 nginx

创建一个名为nginx3的容器,并且挂载一个数据卷。

恢复

数据恢复需要一个临时容器,如下:

docker run --volumes-from nginx3 -v $(pwd):/backup nginx tar xvf/backup/backup.tar

命令解释:

首先还是使用--volumes-from参数连接上备份容器,即第一步创建出来的nginx3。

然后将当前目录映射到容器的/backup目录下。

然后执行解压操作,将backup.tar文件解压。解压文件位置描述是一个容器内的地址,但是该地址已经映射到宿主机中的当前目录了,因此这里要解压缩的文件实际上就是宿主机当前目录下的文件。

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

(0)

相关推荐

  • docker环境下数据库的备份(postgresql, mysql) 实例代码

    posgresql 备份/恢复 1.备份 DATE=`date +%Y%m%d-%H%M` BACK_DATA=xxapp-data-${DATE}.out # 这里设置备份文件的名字, 加入日期是为了防止重复 docker exec pg-db pg_dumpall -U postgres > ${BACK_DATA} # pg-db 是数据库的 docker 名称 2.恢复 docker cp ${BACK_DATA} pg-db:/tmp docker exec pg-db psql -U

  • docker中psql数据库备份与恢复详解

    1. Docker 中 Postgres数据库备份 命令: docker exec it db_13 pg_dumpall -c -U mrp > mrp217 解释: docker exec it [docker中镜像数据库名称] pg_dumpall -c -U [用户名称] > [导处的数据库名称] 2. Postgres数据库备份 命令: pg_dump --host xxxxx --port 5434 --username odoo > odoo217 mrp 解释: pg_d

  • 详解Docker中容器的备份、恢复和迁移

    今天,我们将学习如何快速地对docker容器进行快捷备份.恢复和迁移.Docker是一个开源平台,用于自动化部署应用,以通过快捷的途径在称之为容器的轻量级软件层下打包.发布和运行这些应用.它使得应用平台独立,因为它扮演了 Linux上一个额外的操作系统级虚拟化的自动化抽象层.它通过其组件cgroups和命名空间利用Linux内核的资源分离特性,达到避免虚拟机开销的目的.它使得用于部署和扩展web应用.数据库和后端服务的大规模构建组件无需依赖于特定的堆栈或供应者. 所谓的容器,就是那些创建自Do

  • 详解复制备份docker容器数据的方法

    这里以jenkins容器为例,介绍三种方法. 方法一 将容器打包成镜像,这时数据就在镜像中了,im:1.0为容器名,可以随便取 docker commit <container id> im:1.0 重新运行镜像,-v将容器内tmp目录映射到宿主机上的tmp目录 docker run -itd -v /tmp:/tmp im:1.0 // 第一个tmp是宿主机目录,第二个是容器内目录 把 /var/jenkins_home的文件复制到tmp下,注意这里的container name是随机生成的

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

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

  • docker备份linux系统的命令详解

    tar备份系统 sudo tar cvpzf backup.tgz --exclude=/proc --exclude=/mnt --exclude=/sys --exclude=/backup.tgz / 更多linux备份方法参考https://www.jb51.net/article/151167.htm 编写dockerflie 新建目录Dockerfile,在Dockerfile目录下编辑Dockerfile脚本,如下内容: FROM scratch COPY rootfs / RUN

  • docker 使用mysqldump命令备份导出项目中的mysql数据

    mysqldump命令 介绍:一个数据库备份程序 格式:mysqldump [options] [db_name [tbl_name ...]]描述:mysqldump客户端实用程序执行逻辑备份,生成一组SQL语句,可以执行这些语句来重现原始数据库对象定义和表数据.它转储一个或多个MySQL数据库以备份或传输到另一个SQL服务器. mysqldump命令还可以生成CSV,其他分隔文本或XML格式的输出. 下图为镜像重命名后的镜像名为uoj,现在要把这个镜像中的mysql导出 运行如下命令: do

  • Docker数据备份恢复实现过程详解

    数据的备份操作很容易,执行如下命令: docker run --volumes-from mydata --name backupcontainer -v $(pwd):/backup/ ubuntu tar cvf /backup/backup.tar /usr/share/nginx/html/ 命令解释: 首先使用--volumes-from连接待备份容器. -v参数用来将当前目录挂载到容器的/backup目录下. 接下来,将容器中/usr/share/nginx/html目录下的内容备份

  • mysql8.0.20配合binlog2sql的配置和简单备份恢复的步骤详解

    第一步 安装 1.安装MySQL 2.安装Python3 [root@localhost /]#yum install python3 3.下载binlog2sql文件到本地(文件在百度云盘) [root@localhost /]#mkdir tools [root@localhost /]#cd tools [root@localhost tools]# ll total 317440 -rw-r--r--. 1 root root 317440 Sep 21 23:55 binlog2sql

  • 基于docker 搭建Prometheus+Grafana的过程详解

    一.介绍Prometheus Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作.Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus.现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控. Prometheus基本原理是通过HTT

  • Docker数据存储之Bind mounts详解

    阅读本文前,希望你已经对Volumes有了初步的了解,具体可以参考这篇文章: Docker数据存储之Volumes详解 默认容器的数据的读写发生在容器的存储层,当容器被删除时其上的数据将会丢失.所以我们应该尽量保证容器存储层不发生写操作,为了实现数据的持久化存储我们需要选择一种方案来保存数据,当前有以下几种方式: Volumes Bind mounts tmpfs mounts 下图展示了这三种技术: Bind mounts Bind mounts模式和Volumes非常相似,不同点在于Bind

  • Docker数据存储之tmpfs mounts详解

    阅读本文前,希望你已经对Volumes和Bind mounts有了初步的了解,具体可以参考以下文章: Docker数据持久化之Volumes Docker数据持久化之Bind mounts tmpfs mounts Volumes和Bind mounts模式使我们能够在宿主机和容器间共享文件从而我们能够将数据持久化到宿主机上,以避免写入容器存储层带来的容器停止后数据的丢失的问题. 如果你使用linux运行Docker,那么避免写入数据到容器存储层还有一个方案:tmpfs mounts. tmpf

  • 最新IDEA快速实现Docker镜像部署运行的过程详解

    背景 使用idea配合docker,实现从javaweb开发,部署,运行全过程. 环境:已经配置好的docker.已经安装好的mysql8容器.一个springBoot 框架的web项目(内含swagger,便于测时) 开启Docker的远程连接 网上的方法找不到对应的docker.service文件,可能版本或者安装方式不同. 通过 systemctl status docker 查找docker.service文件位置: 修改/etc/systemd/system/docker.servic

  • docker打包Python环境的过程详解

    docker打包Python环境过程,步骤如下所示: 1 导出pip list下面的依赖包 pip freeze > requirements.txt 把导出的requirements.txt放在docker_test目录里 docker_test为将要打包的代码源文件夹.此demo的docker_test文件夹下面应该有requirements.txt和app.py文件 2 编写Dockfile文件 在docker_test同目录下创建Dockfile文件,格式如下: # 基于的基础镜像 FR

  • Nacos docker单机模式部署实现过程详解

    Nacos 的部署,我使用的时docker 部署(单机模式 Mysql),官网文档:https://nacos.io/zh-cn/docs/quick-start-docker.html 拉取代码: git clone https://github.com/nacos-group/nacos-docker.git 进去目录 cd nacos-docker 启动镜像, docker-compnse 安装可以参考: https://www.jb51.net/article/196840.htm do

  • Docker容器网络端口配置过程详解

    暴露网络端口 实际上,Docker中涉及暴露网络端口的参数有两个,分别是-p和-P.下面分别来介绍. -P 使用-P,Docker会在宿主机上随机为应用分配一个未被使用的端口,并将其映射到容器开放的端口,以Nginx 为例,如下: 可以看到,Docker为应用分配了一个随机端口32768,使用该端口即可访问容器中的 nginx(http://lcalhost:32768). -p -p参数则有几种不同的用法: hostPort:containerPort 这种用法是将宿主机端口和容器端口绑定起来

  • 使用Docker搭建MQTT服务器的过程详解

    1. 拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/synbop/emqttd:2.3.6 2. 运行镜像 –name 名字 -p 18083 服务器启动端口 -p 1882 TCP端口 -p 8083 WS端口 -p 8084 WSS端口 -p 8883 SSL端口 -d 指定容器 docker run --name emq -p 18083:18083 -p 1883:1883 -p 8084:8084 -p 8883:8883 -p

随机推荐