无法访问在Docker上find的文件(无法打开stream:连接超时)

我有以下的Docker容器设置来为我的CMS提供动力,但是我在extensions卷中托pipe的PHP脚本中遇到了一些主要问题。

 version: '2' services: bolt: image: rossriley/docker-bolt:3.2 network_mode: bridge environment: - BOLT_TITLE=Red Moon Workshop ports: - 80:80 volumes: - ./db-data:/var/www/html/app/database - ./files:/var/www/html/public/files - ./app/config:/var/www/html/app/config - ./public/theme/redmoon:/var/www/html/public/theme/redmoon - ./extensions:/var/www/html/extensions restart: always 

在我的extensions卷内,我有一个PHP脚本,它从存储在同一主机中的文件中读取头文件。 脚本通常稍微复杂一些,但是我把它简化为一个失败点:

 $image = 'http://img.gdocker.com/php/1497665310_slide-splash-bg.png'; $headers = get_headers($image); return $headers; 

该错误抱怨说由于超时而无法打开stream,但是如果我在浏览器中打开URL,它就可以正常工作。

 An exception has been thrown during the rendering of a template ("Warning: get_headers(http://img.gdocker.com/php/1497665310_slide-splash-bg.png): failed to open stream: Connection timed out") 

我能够在本地工作,但是一旦我将应用程序推向数字海洋,它开始失败,所以我不确定这里发生了什么。 我有一个存储在Docker容器中的脚本的PHP依赖项,我把脚本存储在一个卷中,但是我已经在Docker容器上试了两种方法,没有运气。

如果我尝试访问任何远程托pipe的文件,它的工作没有问题。 (任何imgur或谷歌等)

这可能是一个权限问题,或Docker和主机之间的通信中的某种细分? 我是相当新的PHP和Docker,所以任何援助将不胜感激。


更新#1

我试图从主机通过以下命令curl文件,它的工作。

 curl -i http://img.gdocker.com/php/1497665310_slide-splash-bg.png 

我试图 Docker容器中做同样的事情,并失败,出现以下错误:

 Failed to connect to beta.redmoonworkshop.us port 80: Connection timed out 

如果我尝试curl相同的图像(但在本地主机)它的作品。

 curl -i http://localhost/files/2017-06/1497665310_slide-splash-bg.png 

我已经解决了这个问题,我已经更新了我docker-compose.yml文件,为/etc/hosts文件添加了一组额外的主机:

 extra_hosts: - "beta.redmoonworkshop.us:127.0.0.1" 

现在,我可以curl域,并获得存储在主机上的文件没有问题。