Docker学习笔记04

112 阅读2分钟

这是我参与8月更文挑战的第4天,活动详情查看: 8月更文挑战

Docker 数据卷与数据卷容器

  • 容器中管理数据的两种主要方式:
    • 数据卷(Data Volumes)
    • 数据卷容器(Data Volume Containers)

1. 数据卷

1.1 数据卷概念

  • 数据卷(Data Volumes):容器内数据直接映射到本地主机环境;在容器内创建数据卷,并且把本地的目录或文件挂载到容器内的数据卷中。
    • 数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的mount操作
    • 数据卷可以提供很多有用的特性,如下所示:
      1. 数据卷可以在容器之间共享和重用,容器间传递数据将变得高效方便;
      2. 对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作;
      3. 对数据卷的更新不会影响镜像,解耦了应用和数据;
      4. 卷会一直存在,直到没有容器使用,可以安全地卸载它。

1.2 数据卷使用

# 创建一个数据卷
$ docker volume create 卷名

# 查看所有的数据卷 
$ docker volume ls 

# 查看容器详细信息
docker inspect 容器ID

# 在主机里使用以下命令可以查看指定 `数据卷` 的信息
$ docker volume inspect 卷名

# 删除数据卷 
$ docker volume rm 卷名

# 清理数据卷
$ docker volume prune

# 匿名挂载  -v 容器内路径
$ docker run -d -p --name nginx01 -v /etc/nginx nginx

# 指定路径挂载数据卷 (匿名挂载的一种)
$ docker run -it -v 主机目录:容器内目录 

# 具名挂载 -v 卷名:容器内路径
$ docker run -d -p --name nginx02  -v juming-nginx:/etc/nginx nginx

2. 数据卷容器

  • 数据卷容器(Data Volume Containers):使用特定容器维护数据卷。如何使用数据卷容器在容器和主机、容器和容器之间共享数据,并实现数据的备份和恢复。
  • 问题
    • 多个容器间能实现数据共享是因为将数据卷挂载到了在宿主机上的同一个路径?

    • 如果其中一个容器删除同步的数据,在其他容器中还会存在已同步的数据嘛?

      • 共享机制--相当于是在宿主机上对应的存储空间存储了一份数据,而不是不同的容器上各存储了一份 本文摘抄或总结其他笔记,笔记不涉及任何商业用途,如果侵权请及时联系处理