本章主要介绍一下Docker的持久化存储

对于Docker Container layer来说,我们在容器里面写数据,这个数据仅限于这个创建的容器,当我们把容器删掉,意味着我们的数据也会被删除,这种情况是我们不能接受的,所以Docker就引入了持久化机制。

Docker持久化数据的方案:
(1)基于本地文件系统的Volume:可以在执行Docker create或者Docker run时,通过-v参数将宿主机的目录作为容器的数据卷。这部分功能便是基于本地文件系统的volume管理
(2)基于plugin的Volume:支持第三方存储方案,比如NAS,AWS

Volume的类型
(1)收管理的data Volume,由docker后台自动创建
(2)绑定挂载的Volume,具体挂载位置可以由用户指定

Data Volume

需要在Docker file中指定volume持久化路径

#创建mysql容器
docker run -d --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD mysql
#查看刚刚创建的mysql容器默认创建的volume
docker volume ls
#查看volume详细信息
docker inspect 11e7434f01b8764f33d6ce0298c15ea49890e43f0e93a265ddb0f8d487b0b9aa
#删除mysql1容器
docker rm mysql1
#再次查看volume,发现还在
docker volume ls

Bind Mouting

#-v表示将容器/etc/nginx目录映射到宿主机home/n1
docker run -d --name nginx -v /home/n1:/etc/nginx nginx