Docker(十) Docker数据管理(数据卷管理、数据备份、数据恢复)

Docker 的数据管理

1 数据卷管理

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

docker run|create --name [容器名称] -v [宿主机目录]:[容器目录] [镜像名称]

参考新建容器章节或新增并启动容器章节

2 数据卷容器管理

数据卷容器的作用是实现多个容器之间的数据共享。其实,数据卷容器也是一个容器,但是与其他 Docker 容器不一样的是,数据卷容器是专门用来提供数据卷给其他容器进行挂载操作。

2.1 创建数据卷容器

创建容器,并在容器中创建目录/datas。

docker create --name my_datas -v /datas eureka:1.0

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

命令格式:

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

具体如下:

docker run --volumes-from my_datas -tid --name eureka1 -p 8761:8761 eureka:1.0

docker run --volumes-from my_datas -tid --name eureka2 -p 8762:8761 eureka:1.0

2.3 测试

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

docker exec -it eureka1 bash
> ls /
> mkdir /datas/test
> touch /datas/test/readme
> echo this text from eureka1 >> /datas/test/readme
> exit

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

docker exec -it eureka2 bash
> ls /datas/test
> cat /datas/test/readme

3 数据备份

将某容器中的数据目录备份。此过程需要一个备份容器作为中间过程辅助完成。

3.1 创建宿主机备份目录

mkdir /backup/

3.2 通过容器备份数据

命令格式:

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

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

具体如下:

docker run --rm --volumes-from my_datas -v /backup/:/backup/ mysql tar -cf /backup/data.tar.gz /data

备份成功后,查看宿主机中/backup 目录备份结果。

4 数据还原

将备份的数据文件还原到某容器,这个过程也需要一个容器辅助完成。

4.1 删除容器中的数据文件

用于模拟无数据的容器。

docker exec -it my_datas bash
> rm -rf /datas

4.2 通过容器还原备份数据

命令格式:

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

具体如下:

docker run --rm -itd --volumes-from my_datas -v /backup/:/backup/ mysql tar -xf /backup/data.tar.gz -C /

4.3 查看还原结果

docker exec -it my_datas bash
> ls /data/test
> cat /datas/test/readme

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

plenilune-望月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值