Docker 入门私人笔记(四)Docker 数据卷容器实践

数据卷挂载应用场景:
开发测试环境和生产环境

开发测试环境主要是用来挂载代码目录。生产环境主要是用来实现容器数据持久化,防止容器关闭时数据不可访问或者容器被删除时数据丢失。

1. 开发测试环境挂载数据卷

开发人员通常喜欢用办公电脑 Windows 系统来编写代码,那么怎样将本地的代码快速同步到 docker 环境中进行测试和打包?

以 VMware 为例,VMware 虚拟机的菜单中包含将办公电脑跟 Linux 虚拟机进行磁盘共享的功能,设置完该共享,然后再按照《Docker 入门私人笔记(三)》中将宿主机跟容器共享数据卷的方法设置共享即可。然后就实现了将办公机的本地磁盘跟 docker 数据卷共享。

2. 生产环境挂载数据卷

思路:
并不需要将每个容器都跟宿主机的磁盘配置共享(挂载数据卷)。而是在宿主机上启动一个容器,专门用来实现宿主机和容器的磁盘共享,可以称之为数据卷容器

如果其他任何容器想实现跟宿主机做磁盘共享,只需在启动时使用 --volumes-from 参数调用数据卷容器即可。

说简单些,数据卷容器所做的事情只有一个:执行宿主机跟容器挂载数据卷的命令。其他容器来调用数据卷容器时,就等于在调用挂载数据卷的命令而已。

优势:

  • 简化容器配置(不必在每个容器内进行挂载数据卷);
  • 降低维护成本(当数据卷不再需要时也不用卸载)。

步骤:
2.1 启动一个专门用来挂载数据卷的容器:数据卷容器
命令:

docker run -d --name [自定义容器名] -v [宿主机的路径]:[容器的路径] [镜像名]

示例:

docker run -d --name volume-demo -v /data:/data nginx

验证:
登录数据卷容器 volume-demo 的目录 /data,确认能看到宿主机的目录 /data 中的文件即可。

2.2 启动一个新容器,调用数据卷容器的配置
命令:

docker run -d --name [自定义容器名] --volumes-from [专门挂载数据卷的容器名] [镜像名]

示例:

docker run -d --name nginx-volume-demo --volumes-from volume-demo nginx

验证:
登录新容器 nginx-volume-demo,确认跟数据卷容器 volume-demo 一样共享了宿主机的目录 /data 并且能看到里面的文件即可。

说明:
数据卷容器的运行状态,不影响引用它的容器的状态。以上面的示例来说明,即 数据卷容器 volume-demo 如果关闭,容器 nginx-volume-demo 的数据卷挂载完全不受影响。
另外,如果容器 nginx-volume-demo 重启,数据卷会自动挂载,无需重新挂载。

缺点:
调用数据卷容器只能按照数据卷容器的的挂载配置去挂载数据卷,即挂载目录固定。

你可能感兴趣的:(docker数据卷容器持久化)