惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
S
Securelist
P
Proofpoint News Feed
H
Help Net Security
S
Schneier on Security
T
Tenable Blog
C
Cisco Blogs
S
Security @ Cisco Blogs
博客园 - 司徒正美
博客园 - 叶小钗
Cisco Talos Blog
Cisco Talos Blog
Google DeepMind News
Google DeepMind News
C
Cybersecurity and Infrastructure Security Agency CISA
Google Online Security Blog
Google Online Security Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hacker News: Ask HN
Hacker News: Ask HN
NISL@THU
NISL@THU
云风的 BLOG
云风的 BLOG
V
Vulnerabilities – Threatpost
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
W
WeLiveSecurity
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Jina AI
Jina AI
腾讯CDC
WordPress大学
WordPress大学
Simon Willison's Weblog
Simon Willison's Weblog
Vercel News
Vercel News
小众软件
小众软件
N
Netflix TechBlog - Medium
有赞技术团队
有赞技术团队
AWS News Blog
AWS News Blog
雷峰网
雷峰网
Forbes - Security
Forbes - Security
The Hacker News
The Hacker News
博客园 - 聂微东
F
Full Disclosure
量子位
Scott Helme
Scott Helme
宝玉的分享
宝玉的分享
A
About on SuperTechFans
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Schneier on Security
Schneier on Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
K
Kaspersky official blog
AI
AI
SecWiki News
SecWiki News
Webroot Blog
Webroot Blog
Martin Fowler
Martin Fowler

博客园 - Hey,Coder!

.net环境下OpenTelemetry Body 读取注意事项 jaeger界面显示异常 .net opentelemetry collector jaeger c# opentelemetry 自定义export c# opentelemetry 自定义export c# 生成对象的初始化代码 Elasticsearch ILM 与 Data Stream 概念及实例说明文档 portainer httphelper封装 Ocelot + Consul + SignalR 粘性会话 正交软件架构 docker postgresql17 主从复制 rabbitmq总结与c#示例 docker rabbitmq quartz dashboard ubuntu24.04 安装docker RAG 检索增强生成 软考 - 架构设计师 知识点总结 c# MailKit3.4.3 发送邮件、附件 nginx 反向代理postgresql c# 信号量 elsa 3.5 中间件记录最后执行的节点数据 xp密钥 c# System.Text.Json 反序列化Dictionary<string,object>时未转换基础类型的处理方法 docker配置代理 openclaw 接入 LMStudio的模型服务 wpf canvas 移动 缩放 windows平台openclaw搭建 wpf scrollerview触摸滚动 c# 动态切换sqlsugar连接字符串 c# Elastic.Clients.Elasticsearch 动态查询 c# es 封装Elastic.Clients.Elasticsearch c# scrollerview滚动到指定元素位置 WPF 重写Expander 基于elsa工作流封装一套变量、组件的体系 常用活动重写 DynamicExpresso 轻量级动态表达式库 c# elsa 3.5.2 程序化工作流常用功能及自定义中间件 leaflet docker 连接老版本的sqlserver ssl错误 c# quartz 动态创建任务 控制任务运行和停止 依赖注入 cefsharp 模拟点击 批量重置数据库的数据 docker 复制远程镜像本地并创建容器 c# newtonsoft dynamic
docker consul registrator 服务自动注册consul 微服务动态扩容
Hey,Coder! · 2026-06-02 · via 博客园 - Hey,Coder!

背景

使用consul做服务发现需要服务将ip、端口注册到consul中,规模较小的微服务可以通过配置来维护,但是一旦规模过大或者需要动态扩容时固定的ip、端口就无法使用了。
可以通过registrator这个服务来自动监控docker中的容器,将识别到的ip和端口注册到consul中,这样就可以自适应扩容后的微服务了。

network

sudo docker network create consul-net

consul

sudo docker run -d \
    --name consul \
    --network consul-net \
    -p 8500:8500 \
    consul:latest agent -server -bootstrap-expect=1 -ui -client=0.0.0.0

registrator

# 注意标签是master不是latest
sudo docker pull gliderlabs/registrator:master

sudo docker run -d \
    --name registrator \
    --network consul-net \
    --volume=/var/run/docker.sock:/tmp/docker.sock \
    gliderlabs/registrator:master \
    -internal consul://consul:8500

# 可以指定绑定的ip而不是使用internal局域网模式
sudo docker run -d \
    --name registrator \
    --network consul-net \
    --volume=/var/run/docker.sock:/tmp/docker.sock \
    gliderlabs/registrator:master \
    -internal=false -ip=192.168.1.1 consul://consul:8500

测试服务

sudo docker run -d \
    --name my-web-app \
    --network consul-net \
    -p 8080:80 \
    --label "SERVICE_NAME=my-web-service" \
    --label "SERVICE_TAGS=web,production" \
    nginx:alpine

# 可以让docker自动分配随机端口
# 只指定容器内的80端口,或直接-P(大写的P) 不带额外的参数将所有端口都暴露出来并随机分配
sudo docker run -d \
    --name my-web-app \
    --network consul-net \
    -p 80 \
    --label "SERVICE_NAME=my-web-service" \
    --label "SERVICE_TAGS=web,production" \
    nginx:alpine

sudo docker run -d \
    --name my-web-app \
    --network consul-net \
    -P \
    --label "SERVICE_NAME=my-web-service" \
    --label "SERVICE_TAGS=web,production" \
    nginx:alpine

备注

可以通过docker port查看容器的端口情况

image