我有一个Laravel项目,我创建了一个Docker环境(使用Docker Compose),其中包含以下内容:
它们都在名为my-net
现在,我还有一个名为admin
的独立github仓库,它是ReactJS中的管理面板。 ReactJS项目使用Laravel项目作为后端(使用管理命名空间中的路由)
所以在这个项目中,我也想设置一个Dockerfile,但我希望它可以访问Laravel项目的网络(my-net
)。这是如何实现的?显然,admin
项目的Dockerfile似乎无法引用my-net
,因为它不知道它存在。我应该通过“公共”路由请求并点击localhost:80/admin/x/y/z
吗?或者是否有内部网络方式来实现这一目标?
答案 0 :(得分:1)
你无法点击localhost
因为它完全错误(docker容器的localhost不是你主机的地址,而是容器的地址)。
也就是说,您可以使用使用标准泊坞窗容器创建的网络。您缺少的是网络没有像您期望的那样被调用my-net
,而是像<folder name>-my-net
那样<folder name>
是您的docker-compose.yml文件所在的文件夹。
要查找要使用的网络的正确名称,您可以运行docker network ls
。
作为替代方案,您可以使用docker network create mynet
手动创建网络,并在docker-compose.yml文件中将其声明为外部:
services:
srvc:
...
networks:
- mynet
...
networks:
mynet:
external:
name: mynet