Docker学习笔记 2020-10-26

Docker内部和容器之间管理数据。

容器中管理数据主要两种方式:
数据卷(Data volumes)
数据卷容器(Data volume containers)

一、数据卷

是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性:
a.数据卷可以在容器之间共享和重用
b.对数据卷的修改会立马生效
c.对数据卷的更新,不会影响镜像
d.卷会一直存在,直到没有容器使用
*数据卷的使用,类似于Linux下对目录或文件进行 mount。

创建数据卷

docker run -d -P -it -v /datas 容器名 启动的命名
docker run -d -P -it --name web1 -v /webapp training/webapp /bin/bash
-v 标记创建一个数据卷并且挂载到容器里

二、数据卷容器

是一个正常的容器,专门用来提供数据卷供其他容器挂载

建立数据卷容器
docker run -d -v /database --name db training/postgres echo database

在其他容器中使用--valumes-from挂载db容器中的数据卷
docker run -d --volumes-from db --name db1 -it training/postgres

可以看到数据卷容器,在多个容器中挂载之后是数据共享的。

数据卷不会被自动删除,要删除一个数据卷,必须在删除最后一个挂着该数据卷的容器是指定-v参数,如下
docker rm -v 数据卷的名字

数据卷容器备份、恢复、迁移数据卷

1.使用数据卷来备份数据,通过指定本地的一个文件路径,对应到容器中的路径,运行tar命令将重要的文件打包备份。

docker run --volumes-from db -v $(pwd):/docker --name db6 -it centos /bin/bash

tar cvf database.tar database 将文件打包

完成之后退出容器,发现本地目录有打包的文件

2.恢复数据卷容器

要将数据恢复到数据卷容器,首先要创建一个带有数据卷的容器,如db10
docker run -d -it -v db10 --name /database centos /bin/bash
然后创建另外一个容器,挂载database2容器,只有使用tar xvf 解压文件到挂载的容器卷中。
docker run -it -d --volumes-from database2 -v $(pwd):/docker centos /bin/bash

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。