Docker开发环境中拒绝了Localhost连接

时间:2015-09-29 13:09:05

标签: php curl nginx docker docker-compose

我在我的PHP开发环境中使用Docker,并使用Docker Compose以这种方式设置我的图像:

myapp:
    build: myapp/
    volumes:
        - ./myapp:/var/www/myapp

php:
    build: php-fpm/
    expose:
        - 9000:9000
    links:
        - elasticsearch
    volumes_from:
        - myapp
    extra_hosts:
        # Maybe the problem is related to this line
        - "myapp.localhost.com:127.0.0.1"

nginx:
    build: nginx/
    ports:
        - 80:80
    links:
        - php
    volumes_from:
        - myapp

elasticsearch:
    image: elasticsearch:1.7
    ports:
        - 9200:9200

Nginx(在其Docker文件中)配置了一个名为myapp.localhost.comserver_name参数)的虚拟主机,并指向/var/www/myapp文件夹。

这一切都很好。

但这是我的问题:我的网络应用程序通过myapp.localhost.com URL使用cURL(在PHP代码中)调用自身,通过运行此命令可以更容易地重现:

docker-compose run php curl http://myapp.localhost.com

cURL回复如下:

  

cURL错误7:无法连接到myapp.localhost.com端口80:拒绝连接

您对我如何调用应用网址有任何疑问吗?我的docker-compose.yml文件中是否遗漏了一些内容?

1 个答案:

答案 0 :(得分:1)

几个月后,我回来发布(非常简单)回答我的问题:

  • 删除Nginx主机配置中的server_name条目
  • 删除extra_hosts文件中的docker-compose.yml条目(不是必需的,但没用)

只需使用Nginx容器名称作为主机(nginx此处)调用服务器:

 docker-compose exec php curl http://nginx