三、数据管理

编辑本文章

3.1数据卷

数据卷是一个供容器使用的特殊目录,绕过文件系统,特性如下:

  • 可在容器之间重用和共享
  • 对数据卷修改会立即生效
  • 更新数据卷不会影响镜像
  • 卷一直存在,直到没有容器使用

创建一个数据卷并挂载

命令:docker run -d -P --name [容器名称] -v [数据卷挂载位置] [镜像名称] [运行的程序]

参数:

  -v参数可以在容器内创建一个数据卷,多次使用该参数可以创建多个数据卷。本地目录文件会同步到数据卷,数据卷内容不会同步到本地。

  -P、允许外部访问容器需要暴露的端口

  -d、后台运行,并返回容器ID

挂载本地一个目录到容器中去作为数据卷,目录不存在会自动创建。挂载后用户可以放置一些程序到本地目录,在docker中直接使用

命令:docker run -d -P --name [容器名称] -v [本地目录绝对路径]:[数据卷挂载位置] [镜像名称] [运行的程序]

避免权限问题,最好让docker自动创建

 在数据卷后面添加:ro后,在容器内将无法修改数据,在容器外部修改不影响

3.2数据卷容器

数据卷容器就是一个普通的容器,专门提供数据卷供其他容器挂载使用

  1. 创建一个数据容器dbdata,并在根目录下挂载一个data目录。命令:docker run -it -v /data --name dbdata ubuntu

  2. 创建一个容器db1,挂载dbdata容器中的data卷。命令:docker run -it --volumes-from dbdata --name db1 ubuntu

  3. 可以创建更多的容器,用相同的方式来挂载数据容器,相互之间任何修改都可见

使用--volumes-from参数挂载的数据卷的容器自身并不需要保持运行状态

3.3利用数据卷容器迁移数据

原理:通过一个数据卷同时挂载本地文件夹和数据卷容器

  1. 启动数据卷容器,挂载一个数据卷data到根目录。命令:docker run -it -v /data --name dbdata ubuntu
  2. 启动一个worker容器,挂载数据卷容器的同时挂载本地目录到/backup下。命令:docker run -it --volumes-from dbdata -v /root/databackup:/backup --name worker ubuntu
  3. 将数据卷容器中的数据备份到/backup目录下即可。命令:tar cvf /backup/backup.tar /data
  4. 宿主机上就可以看到备份下来的文件

数据恢复和备份原理一样

posted @ 2019-01-09 08:38  丫丫625202  阅读(139)  评论(0编辑  收藏  举报