首页 > 其他分享 >docker数据管理

docker数据管理

时间:2023-03-07 12:11:41浏览次数:33  
标签:tmp 容器 -- 数据管理 docker 目录 datas

1.数据卷管理

数据卷的作用是将宿主机的某个磁盘目录映射到容器的某个目录,从而实现宿主机与容器之间的数据共享

docker run(create --name 容器名称) -v 宿主机目录:容器目录  镜像名称

2.多个容器之间数据共享管理

多个容器之间的数据共享就需要用到数据卷容器,数据卷容器也是一个容器,但是他与其他docker容器不一样,他是专门用来提供数据卷给其他容器进行挂载操作

  2.1创建数据卷容器

docker create --name my_datas -v /datas eureka:1.0   #使用eureka:1.0镜像容器,并命名为my_datas,同时在容器中创建/datas目录,/datas目录是共享目录

  2.2创建docker容器并使用数据卷容器

命令格式:通过--volumes-from 参数设定从哪个数据卷容器创建新的容器,必须通过数据卷容器来创建docker容器,否则无法共享

docker run --volumes-from [数据卷容器名或者ID ][options][镜像名称或者ID]

具体如下(以2.1创建的数据卷容器为例):

docker run --volumes-from my_datas -d --name test1 -p 8001:8761 eureka:1.0  #创建容器test1

docker run --volumes-from my_datas -d --name test2 -p 8002:8761 eureka:1.0  #创建容器test2

  2.3测试数据共享

上面2.2已经创建并启动了两个docker容器,分别为test1和test2,分别进入两个容器里面

访问test1容器并在共享目录中写入数据

docker exec -it test1  /bin/bash
cd /datas
echo "abc">>a.txt

访问test2容器并读取共享目录中的数据

此时进入到容器test2中会发现/datas目录下也有a.txt文件

docker exec -it test2 /bin/bash
cd /datas
ls -l

至此,两个容器就实现了数据共享

3.数据备份

3.1.docker cp复制备份

docker cp  96f7f14e99ab:/www /tmp/   #将容器96f7f14e99ab的/www目录拷贝到宿主机的/tmp目录中进行数据备份
docker cp /tmp/ 96f7f14e99ab:/www  #将宿主机/tmp/目录拷贝到容器96f7f14e99ab中,目录重命名为www

3.2.使用一个临时容器作为中间过程辅助完成:此时备份的目录必须是创建数据卷容器时指定的挂载目录

命令格式:

docker run --rm --volumes-from [数据卷容器名称或ID] -v [宿主机目录]:[容器目录] [镜像名称] [备份命令]

其中--rm是自动删除容器参数,表示此容器执行完备份命令后,自动删除

docker run --rm -d -e MYSQL_ROOT_PASSWORD=ROOT -p 3306:3306 --name tmp --volumes-from my_datas -v /opt/datas:/tmp/datas mysql:5.7 tar -czf /tmp/datas/backup.tar.gz /datas  
#my_datas为数据卷容器名称,有了数据卷容器就有了共享文件夹/datas,/tmp/datas表示当前容器的文件夹,/opt/datas表示宿主机文件夹
#tar -czf /tmp/datas/backup.tar.gz /datas 表示将共享文件夹/datas压缩到容器/tmp/datas/backup.tar.gz目录下,在/tmp/datas目录下的数据都在宿主机的/opt/datas目录下,所以进入到宿主机的/opt/datas/目录下就能看到压缩好的backup.tar.gz文件

4.通过临时容器还原数据

命令格式:

docker run --rm --volumes-from [数据要恢复到的容器] -v [宿主机备份目录]:[容器备份目录] [镜像名称] [解压命令]

docker run --rm -d --volumes-from my_datas -e MYSQL_ROOT_PASSWORD=ROOT --name tmp -v /opt/datas:/tmp/datas mysql:5.7 tar -xf /tmp/datas/backup.tar.gz -C /
#tar -xf:解压命令
#-C /:把数据解压到my_datas中根目录

标签:tmp,容器,--,数据管理,docker,目录,datas
From: https://www.cnblogs.com/xnancy/p/17184615.html

相关文章

  • Docker - 安装与配置
    Docker是一个开源的应用容器引擎,基于GO语言开发,开发者可以打包应用及依赖包到一个可移植的容器中,然后发布到任何操作系统的机器上,也可以实现虚拟化。容器是完全使用......
  • docker-compose搭建redis集群
    1、编写Redis配置文件#创建目录mkdir-p/home/docker/docker-redis/redis-cluster#切换至指定目录cd/home/docker/docker-redis/redis-cluster/#编写re......
  • 测开必知:Docker 从入门到精通(新手大全)!
    测试开发技术公众号:https://mp.weixin.qq.com/s/Uy25G68jiminKAIHi9EKRA  一、概述1.1基本概念Docker是一个开源的应用容器引擎,基于Go语言 并遵从Apache2.0......
  • 10,docker基础之---Harbor+阿里云+本地镜像仓库
    什么是镜像仓库?存放着很多镜像的仓库。为什么要使用镜像仓库?例如我们之前使用的pull下载mysql镜像的时候下载的镜像就是存放在他人的镜像仓库之上,公司内部部署镜像仓库即可......
  • docker-compose 配置
    dockerfile是镜像描述文件通过dockerfile文件构建一个属于自己的镜像docker包搜索镜像:​​https://hub.docker.com/​​1指令介绍1.1FROM镜像功能为指定基础镜像,并且必......
  • Docker使用socks5代理
    Docker网络Http代理设置背景在一些实验室环境,服务器没有直接连接外网的权限,需要通过网络代理。我们通常会将网络代理直接配置在/etc/environment、/etc/profile之类的配......
  • docker部署项目
    1.简介本文主要介绍如何使用docker安装nginx,以及如何将前端打包好的vue项目部署到nginx上。2.安装dockerDocker官方和国内daocloud都提供了一键安装的脚本,使得Docker的......
  • 详解Docker容器运行GUI程序的方法
    摘要:本文为大家详解如何直接进入Docker容器运行或通过SSH连接Docker容器运行GUI程序的方法。本文分享自华为云社区《Docker容器运行GUI程序的方法(直接进入Docker容器运行......
  • 详解Docker容器运行GUI程序的方法
    摘要:本文为大家详解如何直接进入Docker容器运行或通过SSH连接Docker容器运行GUI程序的方法。本文分享自华为云社区《​​Docker容器运行GUI程序的方法(直接进入Docker容器运......
  • 简单的Mac版Docker封装
    之前没有封装过docker文件,所以这个是一个尝试的记录。我的目录文件如下:  这里面的这个 requirements.txt是自动生成的。生成方法如下:安装pipreqs:pipinstallp......