我的计算机中具有以下设置:
docker-machine
。我有一个docker-compose.yml
文件,描述了必须构建的容器,要安装的卷等等,以及{{ 1}}。Dockerfile
设置项目B的容器,分别带有docker-machine
和docker-compose.yml
。我现在想在项目A中的一个容器(我们称为容器1)和项目B中的另一个容器(容器2)之间进行NFS共享。
我正在检查类似this的链接,但是据我了解,那是针对同一网络中的容器的。在这种情况下,我的容器1和容器2不在同一网络中,并且它们在不同的机器中。
在运行Dockerfile
或docker-machine
文件中,我没有指定任何联网选项(除了公开我的应用程序使用的端口之外)。
如何在这两个容器之间共享NFS?
答案 0 :(得分:0)
'docker-compose up'命令通过名称[projectname] _default创建网络,并且docker-compose.yml文件中指定的所有服务都将映射到创建的网络。
例如,假设您的应用程序位于名为myapp的目录中,并且docker-compose.yml如下所示:
version: "3"
services:
web:
build: .
ports:
- "8000:8000"
db:
image: postgres
ports:
- "8001:5432"
当您运行docker-compose up时,会发生以下情况:
1) A network called myapp_default is created.
2) A container is created using web’s configuration. It joins the network myapp_default under the name web.
3) A container is created using db’s configuration. It joins the network myapp_default under the name db.
并且如果您希望其他服务使用已创建的现有docker网络,则需要使用“外部”选项进行定义
如果您希望容器加入现有网络,请使用外部选项:
networks:
default:
external:
name: my-pre-existing-network
Compose不会尝试创建一个名为[projectname] _default的网络,而是寻找一个名为my-pre-existing-network的网络并将您的应用程序的容器连接到该网络。
来源:https://docs.docker.com/compose/networking/#use-a-pre-existing-network