我有两个不同的docker堆栈,一个用于HBase,另一个用于Spark。我需要让HBase罐子进入火花路径。我可以这样做的一种方法是使用音量而不必修改火花容器。在HBase的docker-compose.yml中,我定义了一个指向HBase home的卷(恰好是/opt/hbase-1.2.6)。是否可以与火花堆共享该音量?
现在,由于服务名称不同(2个不同的docker-compose文件),因此会预先添加卷(hbase_hbasehome和spark_hbasehome),导致共享失败。
答案 0 :(得分:3)
您可以使用external
卷。请参阅here官方文档:
如果设置为true,则指定已在外部创建此卷 撰写。 docker-compose up不会尝试创建它,并提升 如果它不存在则会出错。
external不能与其他卷配置一起使用 键(driver,driver_opts)。
在下面的示例中,而不是尝试创建一个名为的卷 [projectname] _data,Compose查找简单调用的现有卷 数据并将其挂载到db服务的容器中。
举个例子:
version: '2'
services:
db:
image: postgres
volumes:
- data:/var/lib/postgresql/data
volumes:
data:
external: true
您还可以在Compose文件中与用于引用它的名称分别指定卷的名称:
volumes:
data:
external:
name: actual-name-of-volume