2017-09-03 66 views
0

我有一個Laravel項目OSX上運行多個Docker容器和我做了它具有以下泊塢窗環境(使用多克編輯):在單獨的代碼庫

  • 應用程序(PHP-FPM和nginx的) - 自曝端口80:80
  • MySQL的 - 公開的3306端口:3006
  • Redis的

他們都掛在網絡上被稱爲my-net

現在,我還有一個名爲admin的單獨github回購站,它是ReactJS中的管理面板。 ReactJS項目使用Laravel項目作爲後端(在admin命名空間中使用路由)

所以在這個項目中,我也想設置一個Dockerfile,但我希望它可以訪問Laravel項目的網絡(my-net )。這是如何實現的?顯然,admin項目的Dockerfile似乎不能參考my-net,因爲它不知道它存在。我是否應該通過「公共」路由請求並點擊localhost:80/admin/x/y/z?還是有內部網絡的方式來實現這一目標?

回答

1

您不能點擊localhost,因爲它完全錯誤(docker容器的本地主機不是您主機的地址,而是容器的地址)。

也就是說,您可以使用與標準碼頭集裝箱一起組成的網絡。您所缺少的是,網絡並不像您期望的那樣被稱爲my-net,而是像<folder name>-my-net其中<folder name>是docker-compose.yml文件所在的文件夾。

要找到要使用的網絡的正確名稱,您可以運行docker network ls

作爲替代方案,你可以手動創建一個網絡docker network create mynet,並宣佈其作爲搬運工,compose.yml外部文件:

services: 
    srvc: 
    ... 
    networks: 
    - mynet 
    ... 
networks: 
    mynet: 
    external: 
     name: mynet 
+0

HM,我一直在打本地主機:80我laravel項目正好。那是因爲我像上面所說的那樣暴露了80端口,不是嗎? – djt

+0

從另一個容器或從您的主機? – whites11

+0

否瀏覽器。我沒有意識到,當你說 – djt