6.Docker 容器数据卷

Docker 容器数据卷

1. 是什么?

  • 卷就是目录或文件,存在于一个或多个容器中,由 Docker 挂载到容器,但不属于联合文件系统,因此能够绕过 Union File System 提供一些用于持续存储或共享数据的特性。
  • 卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此 Docker 不会在容器删除时删除其挂载的数据卷。

2. 用来干什么?

  • 将 Docker 容器内的数据保存进宿主机的磁盘中
    • 把应用与其运行的环境打包成镜像,run 后形成容器实例运行,其中产生的数据需要持久化+备份,为避免容器实例被删除后容器内的数据丢失,在 Docker 中使用卷。

3. 有什么特点?

  • 数据卷可在容器之间共享或重用数据
  • 数据卷中的更改可以直接实时生效
  • 数据卷中的更改不会包含在镜像的更新中(数据卷的更新不会影响镜像)
  • 数据卷的生命周期一直持续到没有容器使用为止

4. 宿主机与容器之间添加容器卷互通互联

  • docker run -it -v 宿主机目录:容器内目录 --privileged=true IMAGE [COMMAND] [ARG…]

    (6. Docker 容器数据卷.assets/image-20220719151542965.png)]

  • 查看数据卷是否挂载成功:docker inspect CONTAINER

    (6. Docker 容器数据卷.assets/image-20220719151910501.png)]

  • 添加读写规则映射:限制容器内部只能读取不能写

    • docker run -it -v 宿主机目录:容器内目录:ro --privileged=true IMAGE [COMMAND] [ARG…]

      (6. Docker 容器数据卷.assets/image-20220719153147730.png)]

5. 卷的继承和共享

  • 如 4.宿主机与容器之间添加容器卷互通互联 首张图片所示,容器 b275a4f3b452 完成了与宿主机的映射

  • 创建新容器继承容器 b275a4f3b452 卷规则:docker run -it --privileged=true --volumes-from 父 CONTAINER IMAGE [COMMAND] [ARG…]

    (6. Docker 容器数据卷.assets/image-20220719155227762.png)]


版权声明:本文为qq_44992559原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。