docker容器之数据管理

1、数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新,不会影响镜像
  • 卷会一直存在,即使挂载的数据卷的容器已经删除。

数据卷的使用,类似于 Linux 下对目录或文件进行 mount。

示例:

docker run -idt --name wyl01 -v /opt/container/:/data centos /bin/bash

docker run -itd --name wyl02 -v /opt/data centos /bin/bash

2、挂载一个主机目录作为数据卷

使用  -v  标记也可以指定挂载一个本地主机的目录到容器中去。
[root@bfd-v7 container]# docker run -idt --name wyl01 -v /opt/container/:/data centos /bin/bash

#第2步我们发现wyl01容器中并有数据
#第3步我们在本地的container目录下创建一个web.txt文件
#第4步我们在wyl01的容器中的data目录下发现也同样有一个web.txt文件。

docker容器之数据管理_第1张图片

3、数据卷容器

如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。
数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。
首先,创建一个命名的数据卷容器 wyl02,然后,在其他容器中使用  --volumes-from  来挂载 wyl02容器中的数据卷。
[root@bfd-v7 container]# docker run -itd --name wyl02 -v /opt/data centos /bin/bash
[root@bfd-v7 container]# docker run -itd --name wyl03 --volumes-from wyl02 centos /bin/bash
[root@bfd-v7 container]# docker exec wyl02 touch /opt/data/www.txt
[root@bfd-v7 container]# docker exec wyl02 ls /opt/data
[root@bfd-v7 container]# docker exec wyl03 ls /opt/data

#第1步:创建一个wyl02命名的数据卷容器
#第2步:--volumes-from  来挂载 wyl02容器中的数据卷
#第3步:查看两个容器的data目录下都没有数据
#第4步:在其中一个容器的data目录下面创建数据
#第5步:在另一个容器的data目录下面同时会生成一样的数据。
docker容器之数据管理_第2张图片

4、数据卷的备份和迁移

[root@bfd-v7 container]# docker run -itd --name wyl04 --volumes-from  wyl02  -v /opt/data/backup:/backup centos  tar cvf /opt/data/backup.tar.gz  /opt/data
506fa942b66173a27594163be918b74401a96db99ad8e42afadd38fc149cdc5b

参数说明

  • --volumes-from wyl02 是挂载需要备份的数据卷容器名称,它就是一个容器。
  • -v /opt/data:/opt/data 这是挂载主机目录到窗口中,第一个/opt/data是代表着容器的目录,第二个/opt/data是代表着主机的目录。
  • centos 是代表着容器的REPOSITORY的ID,这个ID可以用docker images命令查看。
  • tar czvf /opt/data/backup.tar.gz //opt/data 这部分放在后面,代表着容器启动成功后的命令。这部分就是对数据卷进行压缩,/sb/backup.tar.gz 这个目录是挂载的主机的目录,只要压缩到这个目录,那就相当于主机的目录也就有了相应的数据, //opt/data这个目录是挂载的数据卷容器中的目录,综合起来就是一组压缩命令,正好实现了把数据卷中的数据备份到当前主机中。


你可能感兴趣的:(docker+k8s)