Docker 存储我们可以将数据保存在容器中 , 但是这样存在一些缺点:
- 当容器停止运行的时候 , 我们无法使用数据 , 并且容器被删除时 , 数据没有被保存下来 。
- 数据保存在容器中的可写层中 , 我们无法轻松的将数据移动到其它地方 。
- volumes , 卷存储在 Docker 管理的主机文件系统的某个目录( /var/lib/docker/volumes/) 里
- bind mounts , 绑定挂载 , 可以将主机的文件或目录挂载到容器中
- tmpfs , 仅存储在主机内存中 , 而不会写入主机文件系统
卷列表对于三种不同的存储数据的方式来说 , 卷是唯一完全由 Docker 管理的 。它更容易备份或迁移 , 并且我们可以使用 DockerCLI 命令来管理卷 。
列出本地可用的卷列表:
[root@VM_0_17_centos ~]# docker volume lsDRIVER VOLUME NAMElocal 0e15a7c0f491bbf500f419ec2637be6a298922cd9d9831b3875363a7f34971cblocal 3fdec394f801640e1a39240be7bd627eb92a6af259844bbe8f5c0ba2a5baf9e5创建卷[root@VM_0_17_centos ~]# docker volume create3a513b26b0bf00087149095c6dbbc6101a5f70efdc15d2430d8e62f4e92715f9这种由系统随机生成名称的卷称为 匿名卷 , 匿名卷名称不具备可读性 , 使用起来不太方便 , 所以创建卷时一般会指定其 name 。例如我们创建一个名为 volume1 的卷 。
[root@VM_0_17_centos ~]# docker volume create volume1volume1[root@VM_0_17_centos ~]# docker volume lsDRIVER VOLUME NAMElocal 0e15a7c0f491bbf500f419ec2637be6a298922cd9d9831b3875363a7f34971cblocal 3a513b26b0bf00087149095c6dbbc6101a5f70efdc15d2430d8e62f4e92715f9local volume1用卷启动一个容器创建好卷之后 , 我们可以用卷来启动一个容器 , 这里首先需要学习 docker container run 命令的两个参数:
- -v 或 --volume
- 由三个冒号(:)分隔的字段组成 , [HOST-DIR:]CONTAINER-DIR[:OPTIONS] 。
- HOST-DIR 代表主机上的目录或数据卷的名字 。省略该部分时 , 会自动创建一个匿名卷 。如果是指定主机上的目录 , 需要使用绝对路径 。
- CONTAINER-DIR 代表将要挂载到容器中的路径
- OPTIONS 代表配置 , 例如设置为只读( ro) , 或者仅能被该容器使用( Z) , 或者可以被多个容器共享 ( z) 。多个配置项由逗号分隔 。
- 例如 , 我们使用 -v volume1:/volume1:ro,z 。代表的是意思是将卷 volume1 挂载到容器中的 /volume1 目录 。 ro,z 代表该卷被设置为只读( ro) , 并且可以被多个容器同时使用( z)
- --mount
- 由多个键值对组成 , 键值对之间由逗号分隔 。例如: type=volume,source=volume1,destination=/volume1,ro=true 。
- type 指定类型 , 可以指定为 bind , volume , tmpfs 。
秒懂生活扩展阅读
- 风向都有哪几种啊
- 国际工程常用的招标方式有哪些种
- r语言是什么
- cad的直线命令是多少
- 祭文中的常用词句 悼词中最常用的十个词语什么
- 流动性分析的常用指标有哪些
- 萌发是什么意思
- route命令用于操作网络的 route命令详解
- 常用的计量单位有哪些
- 华为手机怎么上传文件