【问题标题】:How can i connect the filesystems of two docker containers如何连接两个 docker 容器的文件系统
【发布时间】:2020-07-06 09:06:18
【问题描述】:
所以我有一个在容器 1 上运行的静态文件(Web 应用程序)和一个在容器 2 上运行的节点 js 应用程序,我希望节点应用程序对容器 1 中的静态文件具有写入权限。我怎样才能做到这一点?
到目前为止我尝试了什么:
- docker compose,但它只允许容器之间的通信(网络访问),不共享同一个文件系统。因此,节点无法访问 C1 上的文件。
【问题讨论】:
标签:
node.js
docker
docker-compose
containers
docker-volume
【解决方案1】:
一种方法是docker-compose volume
docker-compose v3 的示例配置 yaml 文件如下。
host-os 文件系统中的/share 将在这两个容器之间共享
version: "3"
services:
webapp:
image: webapp:1.0
volumes:
- /share:/share
nodeapp:
image: nodeapp:1.0
volumes:
- /share:/share
【解决方案2】:
在其中一个容器上使用简单的 HTTP 服务器(可以找到一个简单的节点 here)将允许您托管静态文件。然后,可以使用所有容器所在的网络从其他容器访问它。
另一种选择是将卷安装到您的两个容器中。如果安装了相同的卷,则通过一个容器所做的任何更改都会反映在另一个容器中。更多信息可以在here找到。