前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >运行docker容器遇到的坑

运行docker容器遇到的坑

作者头像
jeremyxu
发布2019-03-19 15:11:46
1.4K0
发布2019-03-19 15:11:46
举报

今天工作中,需要在本机启动consul、zipkin两个容器,参考dockerzipkin两个镜像的说明,很自然地敲出了以下命令:

代码语言:javascript
复制
docker run -d -p 8500:8500 --name=dev-consul -e CONSUL_BIND_INTERFACE=eth0 consul agent -dev -ui
docker run -d -p 9411:9411 openzipkin/zipkin

然后用浏览器去访问http://127.0.0.1:8500http://127.0.0.1:9411,结果发现竟然不能访问。

研究了好半天终于找到原因了。

consul在docker容器里运行的正确姿势:

代码语言:javascript
复制
docker run -d -p 8500:8500 --name=dev-consul -e CONSUL_BIND_INTERFACE=eth0 consul agent -dev -ui -client 0.0.0.0

关键是要加一个-client参数,这个在官方文档上有说明的:

-client - The address to which Consul will bind client interfaces, including the HTTP and DNS servers. By default, this is “127.0.0.1”, allowing only loopback connections. In Consul 1.0 and later this can be set to a space-separated list of addresses to bind to, or a go-sockaddr template that can potentially resolve to multiple addresses.

因为容器运行时是使用-p参数把容器命名空间里的端口映射出来的,因此在容器里运行的程序监听地址必须绑定到0.0.0.0,如果只绑定到127.0.0.1,这样的端口没法映射出来。

zipkin在docker容器里运行的正确姿势:

代码语言:javascript
复制
docker run -d -p 9411:9411 openzipkin/zipkin:2.12.3

关键是要指定镜像的版本为2.12.3,最新的版本2.12.5或latest是前4天发布的,存在严重的bug,汗!!!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档