是否可以将文件夹从容器挂载到主机?
Is it possible to mount folder from container to host machine?
例如,我有一个简单的 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_modules
和 typings
文件夹默认仅存在于 运行ning 容器中。
docker-compose.yml
node-app:
...
volumes:
- .:/app
- /app/node_modules
- /app/typings
我将当前文件夹从主机挂载到容器,它从 /app
的现有文件夹创建卷。这些被安装回容器,因此应用程序可以使用它们。问题是我希望将主机系统上的 typings
文件夹视为只读文件夹(因为某些 IDE 可以向您显示可以在此文件夹中找到的类型提示)。根据我的测试,这些文件夹(node_modules
和 typings
)是在我 运行 容器后在主机上创建的,但它们始终是空的。仅当容器 运行ning 时,是否有可能以某种方式从容器卷中看到它们的内容(最好是只读的)?
您无法通过 Compose 将主机目录设置为只读。 Compose 编排容器,而不是主机系统。
如果您想与主机共享目录,请先在主机上创建它们并将它们作为绑定卷安装(就像您对 .:/app
所做的那样)
例如,我有一个简单的 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_modules
和 typings
文件夹默认仅存在于 运行ning 容器中。
docker-compose.yml
node-app:
...
volumes:
- .:/app
- /app/node_modules
- /app/typings
我将当前文件夹从主机挂载到容器,它从 /app
的现有文件夹创建卷。这些被安装回容器,因此应用程序可以使用它们。问题是我希望将主机系统上的 typings
文件夹视为只读文件夹(因为某些 IDE 可以向您显示可以在此文件夹中找到的类型提示)。根据我的测试,这些文件夹(node_modules
和 typings
)是在我 运行 容器后在主机上创建的,但它们始终是空的。仅当容器 运行ning 时,是否有可能以某种方式从容器卷中看到它们的内容(最好是只读的)?
您无法通过 Compose 将主机目录设置为只读。 Compose 编排容器,而不是主机系统。
如果您想与主机共享目录,请先在主机上创建它们并将它们作为绑定卷安装(就像您对 .:/app
所做的那样)