【docker同容器下多项目curl 调用网络死循环问题记录】
docker同容器下多项目curl调用死循环问题记录
- 业务常景
业务常景
记录一下在搭建新项目时遇到的一个有意思的问题,博主本机环境是自己构建的一个简单的docker-compose 环境,包含:
nginx容器,
php5.4容器,
5.4容器下包含两个项目(aaa.com,bbb.com,一架简称为: A ,B)
单独请求 A,B项目都没有问题
但是当我的项目A在容器内通过php curl请求时报错
curl: (7) Failed to connect to port 80: Connection refused
这个问题的原因很简单, 当nginx将请求转发至项目A后, 项目A在容器内发起curl请求,默认请求的是本容器内的80端口,但是本机80端口并没有联通nginx.
因为不能修改代码中的curl请求地址,只能用域名访问,同时容器中host绑定的话,也只能用ip 绑定域名.后经过多方查询资料后,我通过修改docker-composer.yml 文件,临时解决了这个问题, 解决方法:
创建两个网络段
docker network create --subnet=172.30.0.0/24 app-network
docker network create --subnet=172.30.0.0/24 back-network
nginx容器分配两个网段
version: "3"
services:nginx:image: nginx:1.10-alpinecontainer_name: "web"networks:app-networks:aliases:- "aaa.com"- "bbb.com"back-networks:aliases:- "aaa.com"- "bbb.com"
正如上图 , 我在php容器中 aaa.com 项目代码通过curl请求bbb.com项目,是可以形成访问链路的,但是也可以看到,这个链路很长, 造成了我一旦数据量过大,对网络的开销成倍增长.
所以此路不通
解决方案:
不同的项目,新增不同的php容器,要是有大佬有更好的解决方案,请评论
【docker同容器下多项目curl 调用网络死循环问题记录】相关推荐
- docker中容器与宿主机之间的网络关系
接上一篇jupter远程访问 docker中容器与宿主机之间的网络关系 一.PC上的网络关系 1.网卡的物理地址 网卡的物理地址(MAC地址):是网卡的唯一标识.由生产厂商写入网卡中.MAC地址就如同 ...
- 【5分钟系列】搭建基于docker环境搭建下springboot-mysql项目框架
在云时代,开发者创建的应用必须要能很方便地在网络上传播,也就是说应用必须脱离底层物理硬件的显示:同时必须是"任何时间任何地点"可获取的.我们通常想要快速搭建一个项目框架,数据库的环 ...
- docker的容器下使用apt-get update卡在[0%] Working问题解决办法
环境: 服务器: Ubuntu 20.04.2 LTS docker镜像 :Ubuntu 16.04.3 LTS 查看docker镜像系统版本号方法:使用docker exec 命令进入交互式命令行后 ...
- docker简介和安装(阿里云加速)以及Springboot项目部署docker,实现局域网下同时访问项目(详细过程)
文章目录 关于Docker: Docker简介 Docker优势 Docker的基本组成 Docker安装: Springboot项目部署到Docker 实现局域网内多台电脑可以访问 关于Docker ...
- MAC下oracle默认超级管理员账户密码docker作为容器权限不足问题
电脑是Mac,使用docker作为容器,安装的是oracle 11g Mac下默认的用户名和密码 sys超级用户密码添后缀 sqlplus system/oracle sqlplus sys ...
- docker开放容器端口_开放式容器项目及其含义
docker开放容器端口 昨天,旧金山宣布了开放容器项目 . 这是一个Linux Foundation项目,它将包含使用软件容器的规范和基本运行时软件. 这就是"一件好事". 签署 ...
- 【云服务器】基于docker容器部署Halo项目的个人博客搭建并部署到云服务器
目录 1 docker快速部署halo个人博客 2 主题设置(本文使用的是M酷Joe 2.0版本的主题,下载链接放在下面了) 2.1 API报错解决方案 2.2 首页分栏设置 2.3 轮播图的修改 2 ...
- Docker容器下Redis/ES/RabbitMQ/MongoDB/FastDFS启动命令总结
docker 部署etcd Etcd:一个分布式的k-v存储服务 Etcd官网https://etcd.io/ etcd安装 1. 拉取bitnami/etcd镜像 docker pull bitna ...
- linux容器进程号,linux下docker启动容器,查看容器、进程、日志等命令
运行容器:docker run -it 镜像名 /bin/bash 退出容器:exit 或者 Ctrl+P+Q 查看所有容器:docker ps -a 查看运行的容器:docker ps 重启容器:d ...
最新文章
- 在Ubuntu 16.04.6 LTS升级python 3.5.x到3.7.3之后导致gnome-ternimal无法打开的解决办法
- MobileNetv2优化问题
- android开发--翻转闹铃(从制作到打包)
- PyOpenCV 基本操作
- myeclipse读取mysql表中数据_在myeclipse中连接mysql查询数据
- 《解决微信内置浏览器返回上一页强制刷新问题方法》
- Codeforces 869C The Intriguing Obsession
- 用vSphere Client去建立虚拟机报MKS的错
- iOS14.7 验证失败,因为您不再连接到互联网
- 草稿 22.10.10 !!!!!! YUYU
- 关于MMO游戏服务器从零开发基本内容介绍
- 村长选举c语言程序,菜鸡学C语言之摸鱼村村长
- java pdf 图片_java实现PDF转图片的方法
- oracle角色数达到上限,ROLE启用个数限制
- java保姆级教程—— 1.什么是游戏
- 高中心理健康教育教师资格证经验贴
- GNOME Shell加速演进:BoxPointer, AppMenu和Magnifier
- Hive ,Hsql行转列、列转行实现
- python读数据库的通信协议是_Python以太坊区块链交互将数据存入数据库
- 备注: ubt 16.04 安装 gtx 1060 --- 成功运行 tensorflow - gpu
热门文章
- PyTorch(13)---优化器_随机梯度下降法
- 努比亚 更新服务器设置在哪个文件夹,努比亚nubia Z7 mini官方系统升级更新教程和方法...
- 2021-08-18 关于PC与ipad的远程控制
- python小工具—图片转为字符txt
- 戒梭先生:随笔|合格交易者要达到的三个境界
- 适用于主流浏览器导出Excel表格的代码
- √ JavaSE - 02.怎么打印回形数
- Aspose.Words 将Word(DOC / DOCX)转换为HTML教程
- 智慧灯杆(路灯)控制系统平台架构的主要设备有哪些?
- 采用Fuel Gauge可能出现的几种电量现象及解释