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

运行docker容器遇到的坑

作者头像
jeremyxu
发布2019-03-19 15:11:46
发布2019-03-19 15:11:46
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

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

代码语言:javascript
代码运行次数:0
运行
复制
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
代码运行次数:0
运行
复制
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
代码运行次数:0
运行
复制
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 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档