在OSX上的不同代码库中运行多个Docker容器

时间:2017-09-03 18:57:55

标签: docker

我有一个Laravel项目,我创建了一个Docker环境(使用Docker Compose),其中包含以下内容:

  • app(php-fpm和nginx) - 暴露端口80:80
  • mysql - 公开端口3306:3006
  • redis的

它们都在名为my-net

的网络上链接

现在,我还有一个名为admin的独立github仓库,它是ReactJS中的管理面板。 ReactJS项目使用Laravel项目作为后端(使用管理命名空间中的路由)

所以在这个项目中,我也想设置一个Dockerfile,但我希望它可以访问Laravel项目的网络(my-net)。这是如何实现的?显然,admin项目的Dockerfile似乎无法引用my-net,因为它不知道它存在。我应该通过“公共”路由请求并点击localhost:80/admin/x/y/z吗?或者是否有内部网络方式来实现这一目标?

1 个答案:

答案 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