基于本地文件系统的Volume:能够在执行docker create或docker run时,经过-v参数将主机的目录做为容器的数据卷。这部分功能即是基于本地文件系统的volume管理。
基于plugin的Volume:支持第三方的存储方案,好比NAS,awsmysql
1.Volume的类型算法
受管理的data Volume,由docker后台自动建立
绑定挂载的Volume,具体挂载位置能够由用户指定sql
注意:mysql的Dockerfile中由VOLUME ["/var/lib/mysql"]指定了持久化的路径,此路径是要被持久化的路径,默认volume的名称为local
执行docker
sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
启用一个mysql的image容器,其中-v后跟的mysql表示volume别名,冒号后面的路径为volume本地存储的地址
查看sudo docker volume ls查看docker的volume,会发现自动生成了一个volume
经过sudo docker volume inspect volume的NAME值查看对应volume的详情信息
若是但愿删除volume,则能够使用sudo docker volume rm volumeNAMEoop
在这里向你们推荐一个资料分享群:916683284,里面有大数据离线处理、数据实时处理、Hadoop 、Spark、推荐系统算法等内容的资料分享,若是有兴趣的朋友能够加入领取。大数据
2.恢复volume数据spa
上述操做后会将数据存储到/var/lib/mysql中,咱们能够对container中的mysql数据进行增删改查操做
经过sudo docker rm mysql1移除container
此时查看/var/lib/mysql路径仍然存储volume
咱们能够使用code
sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
再次开启一个container,此时的volume会延用以前的数据实现数据的恢复容器
Data Volume须要在Dockerfile中定义要建立的volume
Bind Mounting是在运行时指定本地目录与容器中目录的一一对应关系便可后台
docker run -v /home/aaa:/root/aaa