无法在Docker容器

时间:2018-05-31 07:59:34

标签: php laravel docker curl nginx

这个问题有点愚蠢,它是关于使用Docker的服务名称作为主机名,所以这里是上下文:

我正在运行以下NGINX容器:base,php-fpm和nginx。我还有一个Laravel项目,位于根项目的/ api文件夹中。我还在端口5000上运行haproxy,以便通过php-fpm容器对请求进行负载平衡。

基本容器包含linux环境,我可以从中运行命令到phpunit,npm,并且可以访问使用docker-compose中的卷发送的其他容器文件。

php-fpm包含PHP运行的环境。

nginx包含NGINX服务器,该服务器配置为容纳两个网站:根网站(localhost)和api子域(api.localhost)。 api。子域指向根项目中的/ api文件夹,根网站(localhost)指向根项目中的/ frontend文件夹。

问题是在基本服务容器中,我无法运行curl命令来访问api.localhost网站。我尝试使用curl来使用docker-compose中的服务名称访问nginx(这是nginx):

$ curl http://nginx

并且它工作正常,但前端文件夹使用前端文件夹中的代码进行回答。我不知道如何使用服务名称来访问容器中的api.localhost。 我试过了

$ curl http://api.nginx $ curl http://api.localhost

甚至localhost都没有回复curl命令:

$ curl http://localhost

有什么办法可以使用服务名称作为主机名从NGINX容器访问子域名?

1 个答案:

答案 0 :(得分:0)

我发现使用NGINX和Docker Service名称作为主机名,子域名无法正常运行。

相反,我必须更改项目的结构,以便在尝试使用服务名称作为主机名访问URL时不使用子域。