是否可以将文件夹从容器挂载到主机?

时间:2016-07-13 09:34:16

标签: node.js docker docker-compose

作为一个例子,我有一个简单的Node.js / Typescript应用程序定义如下:

Dockerfile

FROM node:6.2

RUN npm install --global typings@1.3.1

COPY package.json /app/package.json

WORKDIR /app

RUN npm install

COPY typings.json /app/typings.json

RUN typings install

预先安装了节点包和打字图像。默认情况下,node_modulestypings文件夹仅存在于正在运行的容器中。

搬运工-compose.yml

node-app:
    ...
    volumes:
        - .:/app
        - /app/node_modules
        - /app/typings

我将当前文件夹从主机安装到容器,这会从/app的现有文件夹创建卷。它们被安装回容器,因此应用程序可以使用它们。问题是我希望在主机系统上看到typings文件夹作为只读文件夹(因为某些IDE可以显示可以在此文件夹中找到的类型提示)。根据我测试的内容,我运行容器后在主机上创建了这些文件夹(node_modulestypings),但它们始终为空。是否有可能只在容器运行时以某种方式从容器卷中看到它们的内容(最好只读)?

1 个答案:

答案 0 :(得分:2)

您无法从Compose将主机目录设为只读目录。撰写编排容器,而不是主机系统。

如果要与主机共享目录,请先在主机上创建目录,然后将它们作为绑定卷挂载(就像您使用.:/app完成的那样)