在docker容器中从内部连接到本地apache没有发生

时间:2017-05-18 07:05:36

标签: php docker docker-compose

问题

我通过浏览器http://localhost访问页面,我看到了public文件夹的内容。 问题是,当我运行测试时,curl不会连接消息:

  

cURL错误7:无法连接到localhost端口80:拒绝连接(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)(GuzzleHttp \ Exception \ ConnectException)

我按命令运行测试:

  

docker-compose run --rm php php vendor / bin / behat

搬运工-compose.yml

version: '2'
services:
  php:
    image: webdevops/php-apache:ubuntu-16.04
    volumes:
      - ./:/app
    working_dir: /app
    environment:
      - APP_ENV=local
      - VIRTUAL_HOST=localhost
      - WEB_DOCUMENT_ROOT=/app/public
    ports:
      - 80:80
  composer:
    image: composer/composer
    working_dir: /app
    volumes_from:
      - php

我的环境

  • Mac OSX 10.11.6
  • Docker for mac:17.03.1-ce-mac12(17661)

摘要

我可能在配置中忽略了一些东西?你能帮助我吗,找到问题。

感谢。

1 个答案:

答案 0 :(得分:2)

Docker添加了一个名为docker0的默认网络,您的主机将使用IP地址172.17.0.1。您可以在主机中输入ifconfig来测试。

如果您在未指定其他网络的情况下运行新容器,则会使用IP地址172.17.0.X附加到默认网络。这样,如果要从容器内访问主机上运行的Web服务器,请尝试:

curl http://172.17.0.1:[port]