Docker和Vagrant连接

我有2个应用程序在本地设置。 一个(app_v)运行在stream浪汉上,我可以通过浏览器访问http://192.168.50.5:3000/ 。

其次(app_d)在docker-compose上运行,我可以在http://192.168.50.6:3000/的浏览器上访问它。

问题是,他们似乎没有完全看到对方 。 我ssh进入我的app_v的stream浪机器。 我运行:

ping on 192.168.50.6 

它的工作。 但是curl:

 curl http://192.168.50.6:3000/ curl: (7) couldn't connect to host 

重要的是: 30秒后出现错误。 如果我改变端口错误,如9999, 立即出现错误。

其他要点:

  • 如果我SSH入dockerapp_d结果是相同的ping 192.168.50.5和curlhttp://192.168.50.5:3000/
  • 如果我从app_v或app_d之外运行相同的命令,ping和curl都可以工作 (这也是浏览器工作的原因)。
  • 这两个应用程序运行在centos67上,它们都是rails应用程序

app_v的stream浪文件networking部分:

  config.vm.network 'public_network', ip: '192.168.50.5' config.vm.network 'forwarded_port', guest: 3000, host: 8080 config.vm.network 'forwarded_port', guest: 5432, host: 5434 

Docker组合app_d的设置:

 version: '2' services: db: build: docker/database container_name: postgres networks: app_net: ipv4_address: 192.168.50.10 ports: - "5436:5432" app: build: . container_name: app_d networks: app_net: ipv4_address: 192.168.50.6 volumes: - .:/app ports: - "8086:3000" - "2226:22" links: - db networks: app_net: driver: bridge ipam: driver: default config: - subnet: 192.168.50.0/24 gateway: 192.168.50.1 

你有什么想法,为什么我不能连接他们之间?

编辑我已经缩小了一下。 如果我使用:

  config: - subnet: 172.20.0.0/16 ip_range: 172.28.5.0/24 

和IP一样172.20.128.3。 我可以通过curl访问172.20.128.3:3000服务器。 那么这个特定的IP或子网有什么问题?