docker - 来自同一网络上的主机名的容器请求
问题描述
我正在尝试通过主机名而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
解决方案
实际上对于容器内部的可用主机需要使用别名
别名需要在 web server 服务中添加docker-compose.yml
networks:
local:
aliases:
- host1.localhost
- host2.localhost
- host3.localhost
推荐阅读
- github - 如何在 Github 的 GraphQL API 上获取包含某个分支的所有 repos
- java - 实际值如何分配给由构造函数初始化的对象引用(实际内存,由新分配)?
- python - Gdb 缓冲区溢出;Python 不会执行
- java - 无法从公共 X 路径中检索值
- java - 在 Android Studio 上构建 android webrtc 失败
- swift - 更新方向变化的约束
- laravel - TestCase Laravel 自定义命令返回空响应
- excel - VBA Excel-选择列中数据的UsedRange而不是整列
- amcharts - 使用 dataloader 插件将 JSON 数据加载到 AmCharts
- apache-kafka - 使用 kafka-consumer-groups.sh 获取 kafka 消费者滞后时出错