在两个容器之间不能卷曲

时间:2018-11-24 20:00:58

标签: docker docker-compose

我无法让两个容器进行通信。我在不同的项目中有2个单独的docker-compose.yml文件。

第一个是:

version: '2'

services:
  myapp:
    tty: true
    image: 'bitnami/laravel:latest'
    labels:
      kompose.service.type: nodeport
    ports:
      - 3000:3000
    expose:
      - "3000"
    volumes:
      - ./:/app

networks:
  default:
    external:
      name: "laravel"

第二个:

  app:
    build:
      context: .
      dockerfile: ./docker/app/Dockerfile
    image: bla/bla
    container_name: my-app
    ports:
      - "80:80"
      - "443:443"

networks:
  default:
    external:
      name: "laravel"

当进入浏览器或从终端到localhost:3000卷曲时,我得到了响应。如果我进入myapp容器,我也可以卷曲(这确实并不奇怪)。

但是我无法做到这一点,所以我进入了app容器并获得了答复。相反,我得到:

  

卷曲:(7)无法连接到本地主机端口3000:连接被拒绝

1 个答案:

答案 0 :(得分:1)

当您访问容器中的localhost时,您访问的是容器本身,而不是主机。

例如,如果您想访问主机上的端口,则对此进行一些讨论:https://forums.docker.com/t/accessing-host-machine-from-within-docker-container/14248/5

但是您需要访问同一主机上的另一个容器。通常,使用本地主机是一种不好的做法,因为将来将容器移动到另一个主机时,您会忘记它,并且系统会崩溃。

如果您仍然想要这样做,则需要在Docker中创建网桥。

您可以找到与网桥相关的文档:https://docs.docker.com/network/network-tutorial-standalone/