我正在研究一个微服务架构,其中我们有许多不同的项目,并且所有项目都连接到同一个redis实例。我想将这个体系结构移到Docker上以在开发环境中运行。因为所有的项目都有单独的存储库,所以我不能只使用一个

docker-compose.yml

文件来连接它们。在做了一些研究之后,我发现我可以创建一个共享的外部网络来连接所有的项目,因此我开始创建一个网络:

docker network create common_network

我为MongoDB、Redis、RabbitMQ(所有项目使用的服务)等公共服务创建了一个单独的项目。下面是这个项目的Docker撰写文件示例:

version: '3'

services:

redis:

image: redis:latest

container_name: test_project_redis

ports:

- "6379:6379"

networks:

- common_network

networks:

common_network:

external: true

现在当我跑步的时候

docker-compose build

docker-compose up -d

它的工作方式很迷人,我可以使用127.0.0.1:6379从本地计算机连接到Redis。但是当我尝试从另一个容器连接到这个redis容器时有一个问题。

下面是另一个运行node.js的项目的docker-compose.yml示例(我不放置dockerfile,因为它与此问题无关)

version: '3'

services:

api:

build: .

container_name: sample_project_api

networks:

- common_network

networks:

common_network:

external: true

当我构建和运行这个docker compose时没有问题,但是node.js项目正在

CONNREFUSED 127.0.0.1:6379

错误,显然它无法通过127.0.0.1连接到Redis服务器

所以我在API容器中打开了一个活动的ssh(

docker exec -i -t sample_project_api /bin/bash

)和已安装

redis-tools

做一些测试。

当我试着

redis-cli ping

它回来了

Could not connect to Redis at 127.0.0.1:6379: Connection refused

.

我检查了外部网络,看是否所有的容器都正确连接到它,使用

docker network inspect common_network

. 没有问题,所有的容器都列在容器下面,从那里我注意到

sample_project_redis

容器的IP地址为

192.168.16.3

作为最后的解决方案,我尝试使用redis容器的内部IP地址:

从我运行的示例\u项目\u API容器

redis-cli -h 192.168.16.3 ping

它和它工作的乒乓球一起返回。

因此,我的问题是,我无法使用的IP地址从其他容器连接到redis服务器。

127.0.0.1

0.0.0.0

但我可以用

192.168.16.3段

每次我重新启动Docker容器时都会改变。这背后的原因是什么?

docker 外部连接_使用外部网络连接Docker容器相关推荐

  1. Android 监听网络连接状态,判断网络连接方式,9.0网络连接,获取已连接WiFi名称SSID和MAC

    获取已连接的WiFi名称 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> ...

  2. 电脑无线不显示宽带不能连接服务器,电脑上网为什么只显示宽带连接不显示无线网络连接?...

    近日有关于电脑上网时为什么只显示宽带连接不显示无线网络连接的问题受到了很多网友们的关注,大多数网友都想要知道电脑上网时为什么只显示宽带连接不显示无线网络连接的具体情况,那么关于到电脑上网时为什么只显示 ...

  3. 无线和有线网络同时连接时,出现网络连接超时问题解决

    问题描述:无线和有线网络同时连接时,出现网络连接超时.网络图标出现叹号,时段时序,导致无法正常上网.无论单独连接有线网络,还是单独连接无线网络都是没有用的. 解决方法:设置优先级实现对指定网络的优先连 ...

  4. java 检测网络连接,使用java检测网络连接情况

    使用java检测网络连接状况 windows中可以通过在cmd中使用ping命令来检测网络连接状况,如下: 网络连接正常时: 网络未连接时: 在java中可以通过调用ping命令来判断网络是否连接正常 ...

  5. finalshell连接超时怎么解决_电脑无线网络连接不上怎么回事 电脑连不上无线网络的解决方法...

    现在是一个网络多元化的时代,基本上家家户户都有电脑,用电脑就需要网络,今天我们要说的是无线网络,近日很多网络用户出现电脑连不上无限网络,又不知道如何处理,大家可以看看下面的电脑教程,帮你搞定无线网络连 ...

  6. linux配置4g网络命令_树莓派移动网络连接(配置4G网卡)

    1.识别上网卡 使用命令lsusb,如果能够识别则可以继续往下. 2.安装网卡驱动程序 上网卡一般都会带有2个功能,一个是虚拟光驱,用来安装驱动程序:另一个是进行网络连接的modem. 在Linux下 ...

  7. orcal 工具能连接上 程序连接不上_电脑无线网络连接不上怎么办

    无线网络是帮助我们摆脱网线的束缚,它的出现带来了巨大的方便,笔记本也在用户中越来越普及.然而却时常会遇到笔记本电脑无线网络连接不上的问题,这种问题该怎样解决呢? 电脑无线网络连接不上怎么办 第一步:右 ...

  8. 计算机网络连接叹号,【电脑网络连接感叹号】电脑网络连接感叹号怎么回事_电脑网络连接感叹号怎么办_亲亲宝贝网...

    电脑网络连接感叹号怎么办 1.首先要先知道电脑的IP地址是什么,点击"开始","运行",输入"cmd"回车,在命令行中输入"ipc ...

  9. tmac v6设置中文_如何修改网络连接的网卡MAC物理地址

    识别修改后的网卡物理地址 通过命令"ipconfig /all "可以看到输出如下信息,其中 02-7D-B1-C5-2E-5D便是修改后的物理网卡地址 无线局域网适配器 无线网络 ...

  10. 计算机连上网没网络连接,电脑显示本地网络连接但是宽带没连上怎么办? 爱问知识人...

    此方案适用XPVISTAWIN7系统 [问题描述]: 宽带拨号连接错误报错提示 [解决方案:]: 错误:676 问题:电话占线 原因:BAS上保留了用户在线数据或用户系统(主要是网卡)故障 解决:BA ...

最新文章

  1. 【图像】尺度不变特征变换算法(SIFT)
  2. [转]清除mysql表中数据
  3. 单片机全局有必要封装_MCU-C程序基本编程规范(转)
  4. ASP.Net学习笔记002--ASP.Net服务端控件做了什么2
  5. java core 作者_java core dump分析实战
  6. PHP支付宝手机网站支付功能
  7. mysql中tab键作用_MySQL小技巧-mysql命令 tab键数据表名、字段名补全功能
  8. OSS接口获取的图片压缩大小 简单好用直接在src获取的地址后面拼接
  9. 快速切换node版本
  10. rebase详解——非常精髓
  11. Ubuntu下添加开机启动项的2种方法
  12. 解决微博SDK接入全平台支持
  13. InputStream与DataInputStream的区别
  14. 简单c语语言游戏教案大全,大班语言活动教案大全简单趣味
  15. 目标检测算法——YOLOv5/YOLOv7改进之结合特征提取网络RFBNet(涨点明显)
  16. win10关闭防火墙过程(详细)
  17. 常见26种NLP任务的练手项目
  18. html怎么做左侧广告,利用DIV+CSS制作浮动广告
  19. 程序员要如何走上创业逆袭路,获得百万、千万?
  20. 手机 听广播 不用 耳机 android,无需插入耳机即可收听FM广播的高级提示

热门文章

  1. 一文看懂BCH减半时间计算及减半影响
  2. 以太坊经典逆势上涨,行情能否继续?
  3. 智能合约类代币EOS、BCH、Tezos很有可能会超越BTC
  4. asp and asp.net trips
  5. 8.15 12.13-12.16
  6. GridView正反双向排序
  7. 削减成本同时,多数企业仍计划增加云计算投入
  8. winform 控件半透明设置
  9. IMAX融资5000万美元,三年内要打造25个VR项目
  10. [LUOGU] 1090 合并果子