在不同docker compose文件中描述的容器之间以及在不同docker计算机中运行的容器之间创建NFS共享
我的计算机中有以下设置:在不同docker compose文件中描述的容器之间以及在不同docker计算机中运行的容器之间创建NFS共享,docker,docker-compose,docker-machine,nfs,Docker,Docker Compose,Docker Machine,Nfs,我的计算机中有以下设置: 一个docker机器为我的项目A的容器设置。我有我的docker compose.yml文件,描述必须构建哪些容器、要装载的卷等,以及每个容器的Dockerfile 另一台docker机器为我的项目B的容器设置,其docker compose.yml和Dockerfiles 现在,我想在项目a中的一个容器(我们称之为容器1)和项目B中的另一个容器(容器2)之间进行NFS共享 我在检查链接,但据我所知,这是针对同一网络中的容器。在这种情况下,我的容器1和容器2不在同一
- 一个
为我的项目A的容器设置。我有我的docker机器
文件,描述必须构建哪些容器、要装载的卷等,以及每个容器的docker compose.yml
Dockerfile
- 另一台
为我的项目B的容器设置,其docker机器
和docker compose.yml
sDockerfile
docker machine
或在我的docker compose.yml
文件中,我没有指定任何网络选项(除了公开我的应用程序使用的端口)
如何在这两个容器之间进行NFS共享?使用“docker compose up”命令按名称[projectname]\u 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]\u default的网络,而是查找名为my pre-existing network的网络,并将应用程序的容器连接到该网络
来源:那么NAT背后有两台不同的vm机器,你是否尝试过使用桥接网络来实现这两种功能?你应该尝试解决这个问题,然后解决NFS问题。我尝试过这样的“外部”选项:在我的项目a
docker compose.yml
文件中,我创建了一个网络测试
,并添加了我想要添加的容器d网络,在项目Bdocker compose.yml
文件中,我使用了外部选项,但Composer抱怨说:网络测试声明为外部,但找不到。请使用
docker network create frontback``手动创建网络,然后重试。
您能将“docker网络ls”。