首页 > 解决方案 > 来自同一网络上的主机名的容器请求

问题描述

我正在尝试通过主机名http:://super.localhost不是容器名称来发出 GET/POST 请求。

我的super.localhost(nginx 容器)网站可从Internet 浏览器获得,但从 php 容器我无法发出 curl GET 请求(连接被拒绝)。仅按容器名称有效。PHP 脚本通过 CURL 拥有 100 多个主机,所有这些主机都位于 nginx 容器上。

> CURL -i nginx是作品。> CURL -i super.localhost不起作用。有什么想法可以引起响应吗?

一个网络上的一切。nginx 80:80 的端口

version: '3'
services:
    nginx:
        container_name: webshop-nginx
        build:
            context: .
            dockerfile: ./nginx/nginx.docker
        ports:
            - "80:80"
            - "8080:80"
        volumes:
            - ./app:/var/www/app
            - ./nginx/site.conf:/etc/nginx/conf.d/default.conf
        working_dir: /var/www/app
        depends_on:
            - php-fpm
        networks:
            - local

标签: dockerdocker-compose

解决方案


实际上对于容器内部的可用主机需要使用别名

别名需要在 web server 服务中添加docker-compose.yml

   networks:
        local:
            aliases:
                - host1.localhost
                - host2.localhost
                - host3.localhost

推荐阅读