Docker容器数据卷
⒈Docker容器中数据如何持久化?
①通过commit命令使容器反向为镜像
②以容器数据卷的方式将数据抽离
⒉容器数据卷的作用?
①容器数据的持久化
②容器间继承、共享数据
⒊能干嘛?
卷就是目录或文件,存在于一个或多个容器中,由Docker拦截到容器,但不属于联合文件系统,因此能够绕过联合文件系统提供一些用于持续存储或共享数据的特性。
卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。
特点:
1.数据卷可在容器之间共享或重用数据。
2.卷中的更改可以直接生效。
3.数据卷中的更改不会包含在镜像的更新中。
4.数据卷的生命周期一直持续到没有容器使用它为止。
⒋容器如何添加数据卷?
1)命令添加
docker run -it -v 宿主机绝对路径目录:容器内目录[:ro] 镜像名称
:ro 强制为共享目录在本容器加上只读权限,即容器内共享目录只读
--privileged=true 添加共享目录报错
2)DockerFile添加
新建DockerFile文件,在文件中使用VOLUME指令给镜像添加一个或多个数据卷,然后使用docker build使之生成为镜像。
使用docker run使镜像实例为容器
使用docker inspect查看宿主机对应共享地址
⒌容器间共享文件夹(数据卷)如何继承、共享(类似于主从)
1)命令添加
docker run -it --name xxx --volumes-from 容器1 镜像名称
★与主从模式不同,父与子,子与父之间Docker是共享的,即父的共享目录发生改变,子会同步,子发生改变,父也会同步。
★即使父节点被移除,多个子节点之间的修改也是同步的。