volume container 的方式,就是创建一个容器,不启动,其他容器使用这个容器作为存储:
创建容器
|
|
注意: 这里执行的是 docker create 命令,这是因为 volume container 的作用只是提供数据,它本身不需要处于运行状态.容器 mount 了两个 volume:121. bind mount,存放 web server 的静态文件。2. docker managed volume,存放一些实用工具(当然现在是空的,这里只是做个示例)。
使用容器
其他容器可以通过 –volumes-from 来使用上面创建的容器:123# docker run --name web1 -d -p 80 --volumes-from vc_data httpd# docker run --name web2 -d -p 80 --volumes-from vc_data httpd# docker run --name web3 -d -p 80 --volumes-from vc_data httpd
三个容器web1、web2、web3 都使用了vc_data, 通过docker inspect web1, docker inspect web2, docker inspect web3, 可以看到三个容器使用的就是 vc_data 的 volume,而且连 mount point 都是一样的.
volume container 特点
- 与 bind mount 相比,不必为每一个容器指定 host path,所有 path 都在 volume container 中定义好了,容器只需与 volume container 关联,实现了容器与 host 的解耦。
- 使用 volume container 的容器其 mount point 是一致的,有利于配置的规范和标准化,但也带来一定的局限,使用时需要综合考虑。