首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何映射docker卷中的文件

如何映射docker卷中的文件
EN

Stack Overflow用户
提问于 2017-05-22 23:14:37
回答 2查看 3.6K关注 0票数 1

我在docker-compose文件中有一个特殊的用例。下面是此类文件的摘录,应该足以说明该问题。

代码语言:javascript
复制
version: '2'

volumes: 
  data: 
    #external: true
    driver: rancher-nfs

services:
  harbor-setupwrapper:
    image: mreferre/harbor-setupwrapper:1.1.1-1
    container_name: harbor-setupwrapper
    volumes:
      - data:/data
    command: ["/harbor/harbor-setupwrapper.sh"]
    network_mode: "none"

  ui:
    image: vmware/harbor-ui:v1.1.1
    container_name: harbor-ui
    restart: always
    volumes:
      - data:/harbor_storage 
      - /data/secretkey:/etc/ui/key:z
    depends_on:
      - harbor-setupwrapper
    entrypoint:
      - /bin/sh
      - -c
    command:
      - /configui/entrypointui.sh

基本上,我的用例如下:我创建了一个docker卷(data),并将其挂载到一个安装容器中(我正在使用一个常规的NFS驱动程序)。该设置容器在卷内生成一堆配置文件。

然后我需要将整个卷映射到另一个容器中:

- data:/harbor_storage

这工作得很好,在ui容器中,我可以看到容器/harbor_storage目录内的data卷的内容。

但是,我还需要在ui容器内的特定目录中映射data卷中的特定文件:

-/data/secretkey:/etc/ui/key:z

这不起作用,因为它基本上将主机本地的/data/secretkey目录映射到容器内的/etc/ui/key:z目录。

实际上,secretkeydata卷中的一个文件(这就是我想映射到文件/etc/ui/key:z的内容。

我还尝试了语法中的调整,看看我是否可以告诉compose我指的是data卷,但compose抱怨语法错误。这是我尝试过的(没有成功):

- data/secretkey:/etc/ui/key:z

任何想法都很感谢。

附注:我知道我可以调用一个小脚本,将/harbor_storage/secretkey复制到/etc/ui/key中,但我仍然希望不必陷入这种困境,并能够像我试图做的那样映射它。

EN

回答 2

Stack Overflow用户

发布于 2020-01-23 18:54:19

只是为了让新人知道。现在这是可能的(从docker的2.1.0.X版本,引擎19.x.x开始),方法与文件夹映射相同:

代码语言:javascript
复制
volumes:
  - ~/dev/environment/configuration.properties:/opt/data/configuration.properties
票数 2
EN

Stack Overflow用户

发布于 2017-05-22 23:37:40

目前无法装载卷的子目录。您必须从该卷提取密钥并挂载它,或者复制或符号链接它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44116521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档