对题主问题进行解析,目前有两个存储系统,先不考虑存储的双活机制,例如EMC 的VPlex,主备存储进行数据备份,具备存储级的切换条件。目前想在docker上挂载物理存储,多个容器之间共享数据。
一般进行挂载共享存储的无外乎以下三种情况,1、 容器不再运行时,数据将不会持续存在,数据很难从容器中取出。2、无法在不同主机之间很好的进行数据迁移。3、数据写入容器的读写层需要内核提供联合文件系统,这会额外的降低性能。
docker一般有三种不同的方式将数据挂载到容器中:volume、bind mount、 tmpfs,其中最为广泛运用的是volume。1、 docker 默认在主机上会有一个特定的区域( /var/lib/docker/volumes/ Linux),该区域用来存放 volume。2、非 docker 进程不应该去修改该区域。3、 volume 可以通过 docker volume 进行管理,如创建、删除等操作。4、volume 在生成的时候如果不指定名称,便会随机生成。
举一个例子, ls / var /lib/docker/volumes ff664768bfe64e1a8cae4369dd4a2e1929362e29580735480290684e38c8f140 ffa4846b581c1a50a01e7a12a6342ad2aaa442701a35ae56ef2f0e5d7888b22c
需要关注的是, volume 在容器停止或删除的时候会继续存在,如需删除需要显示声明。