自定义Docker容器的 hostname
2016-03-28 00:28
701 查看
作者: John Deng
原创内容,欢迎传播,请注明出处:http://www.cnblogs.com/johnd/p/set-docker-hostname.html
因为要部署 dubbo 服务到 docker 集群,在部署时遇到一个问题,就是dubbo会去获取 /etc/hosts 下面的 hostname 对应的IP地址作为 zookeeper 注册中心注册的 IP 地址,由于 docker 容器的 IP 是 172.17.0.2, 那注册到 zookeeper 的 IP 也就是 172.17.0.2 了。
那问题就来了,172.17.0.2 是 docker 容器的 IP, 容器外面是无法访问的,我的解决方案很简单,就是更改容器的 hostname 及其映射的 IP 来使得 dubbo 可以注册宿主的 IP 地址。
我是使用 docker-compose 来启动的, 在 docker-compose.yml 中添加 environment 和 extra_hosts 两个参数即可解决:
然后运行 docker-compose up 命令,可以看到 dubbo 已经注册了正确的 IP 地址:
[DUBBO] Register: dubbo://192.168.0.100:20880/com.johnd.dubbo.service.api.SayHelloToJohn
如果你是用 docker run 来运行 docker 容器,也可以添加相应的命令行参数。
------------------------------------------------------------------------------------------------------------
更新:
其实可以有更简单的处理办法,就是直接使用主机网络,在docker-compose的配置文件添加 net: host 配置。
如果你对本文有任何疑问,请留言,或者写邮件给我: john.deng@outlook.com
原创内容,欢迎传播,请注明出处:http://www.cnblogs.com/johnd/p/set-docker-hostname.html
因为要部署 dubbo 服务到 docker 集群,在部署时遇到一个问题,就是dubbo会去获取 /etc/hosts 下面的 hostname 对应的IP地址作为 zookeeper 注册中心注册的 IP 地址,由于 docker 容器的 IP 是 172.17.0.2, 那注册到 zookeeper 的 IP 也就是 172.17.0.2 了。
那问题就来了,172.17.0.2 是 docker 容器的 IP, 容器外面是无法访问的,我的解决方案很简单,就是更改容器的 hostname 及其映射的 IP 来使得 dubbo 可以注册宿主的 IP 地址。
我是使用 docker-compose 来启动的, 在 docker-compose.yml 中添加 environment 和 extra_hosts 两个参数即可解决:
dubbo-service-provider: image: johnd/dubbo-service-provider:latest ports: - 9090:9090 - 20880:20880 environment: HOSTNAME: dubbo-service-provider extra_hosts: dubbo-service-provider: 192.168.0.100
然后运行 docker-compose up 命令,可以看到 dubbo 已经注册了正确的 IP 地址:
[DUBBO] Register: dubbo://192.168.0.100:20880/com.johnd.dubbo.service.api.SayHelloToJohn
如果你是用 docker run 来运行 docker 容器,也可以添加相应的命令行参数。
------------------------------------------------------------------------------------------------------------
更新:
其实可以有更简单的处理办法,就是直接使用主机网络,在docker-compose的配置文件添加 net: host 配置。
dubbo-service-provider: image: johnd/dubbo-service-provider:latest net: host ports: - 9090:9090 - 20880:20880
如果你对本文有任何疑问,请留言,或者写邮件给我: john.deng@outlook.com
相关文章推荐
- 让Docker功能更强大的10个开源工具
- Docker —— 从入门到实践
- Self-Paced Training (2) - Docker Fundamentals
- docker
- Docker使用笔记
- 使用Docker在Ubuntu下安装Skype报错
- Dockerfile
- Self-Paced Training (1) - Introduction to Docker
- [Docker] - Install Oracle DB over Docker as development DB
- 常用docker命令,及一些坑
- calico docker 应用实例
- Kubernetes安装部署
- 使用fluentd管理docker日志
- docker 实战---部署tomcat\weblogic集群 (二)
- 删除docker0网卡
- Docker相关笔记
- Docker隔绝上传文件
- docker迅速搭建可用 GitLab
- 用P2P方法快速分发Docker镜像
- docker 通过commit方法创建镜像(Tomcat+Java+Scala)