docker学习笔记4 数据管理、持久化

docker 有2种管理数据的方式:

1、数据卷,把容器的数据写到本地硬盘去,相当于mount个磁盘给容器;

2、数据卷容器,有个容器专门管理数据

-------------------------------------------------

数据卷:

docker container run -v 路径 镜像名          在容器内建一个 路径 

docker container run -v 本地路径:容器路径 镜像名          在容器内把 本地一个路径 mount 到 容器里的 容器路径 上

docker container run -v 本地路径:容器路径:ro 镜像名          在容器内把 本地一个路径 mount 到 容器里的 容器路径 上,权限是ro,readonly,也可以是rw,默认是rw

--------------------------------------------------

数据卷 容器

在  多个容器之间  共享一些  持续更新的数据,最简单的方式就是用  数据卷容器

docker container run -v 本地路径 --name 数据卷容器名 镜像名            创建数据卷容器, 镜像是用来确定容器的操作系统,bash之类的,所以在镜像库里最好有个操作系统的镜像,比如suse,ubuntu之类的,便于操作数据;数据卷容器并不需要一直运行,exit状态也可以

docker container run --volumes-from 已有的数据卷容器名 --name 容器名 镜像名      新建一个容器,这个容器的数据挂载到 数据卷容器 的目录上

--------------------------------------------------

数据卷 容器 的 备份、恢复

备份例子: docker container run --volumes-from dbdata -v /local_backup:/backup --name backup_worker ubuntu tar cvf /backup/backup.tar /dbdata

稍微有点复杂。。。。挂来挂去。

用ubuntu镜像创建一个容器 backup_worker。

使用--volumes-from 将 backup_worker 挂载到 dbdata 这个 数据卷容器上。

使用 -v /local_backup:/backup 将 容器 backup_worker的 /backup目录挂载到本地 /local_backup 。

backup_worker容器启动后,使用 tar cvf /backup/backup.tar /dbdata 命令,将 数据卷容器dbdata下的内容 通过 --voluemes-from 备份到 backup_worker 容器里 /backup/backup.tar 里,即 通过 -v 把数据转移到宿主机  /local_backup目录下的backup.tar文件。

恢复例子:docker container run -v /dbdata -name dbdata2 ubuntu /bin/bash

用ubuntu镜像创建一个容器 dbdata2,dbdata2里面建一个路径 /dbdata。

docker container run --volumes-from dbdata2 -v ${pwd}:/backup busybox tar xvf /backup/backup.tar

把backup.tar 解压到dbdata2容器里的 /dbdata目录里,实现备份还原的目的。

----------------------------------------------------

备份和还原,来来回回,挂来挂去比较复杂,我也是一知半懂,要试验多两次才有新的体会,将持续更新。

原文地址:https://www.cnblogs.com/alpha118/p/10334272.html