避免Kafka客户端无法连接Docker上运行的Kafka,又名:Docker如何添加hosts映射

承接上文

在上一篇文章中,我们谈了下Kafka客户端连接后端Broker的认证,导致的无法建立连接的出现原因,了解了为什么无法通过认证,即:客户端未携带与 Zookeeper 中存储的 Broker 连接认证信息

有朋友可能会问了,我知道了这个原理了,知道需要为客户端主机添加 hosts 映射,可是如果这个客户端运行在容器里呢?该怎么处理?

解决方式

解决思路有两种,第一种是容器使用主机网络,修改主机/etc/hosts ;第二种是通过命令为容器添加 hosts 映射

docker 命令行如何做

  • 主机网络模式:在镜像名称前添加 --network host

举例:docker run -it --network host nginx cat /etc/hosts

  • 添加容器内 hosts 映射:与上述位置相同,添加 --add-host 映射域名:映射ip,相当于在容器内设置了映射ip 映射域名

举例:docker run -it --add-host hellxz.test:192.168.1.10 nginx cat /etc/hosts

docker-compose 如何做

  • 主机网络模式:在docker-compose.yml中添加 network_mode: "host"

举例:

version: "3.3"
services:
    zookeeper:
        image: zookeeper:3.5.5
        restart: always
        container_name: zookeeper
        environment:
            - ZOO_MY_ID=1
        network_mode: "host" #host模式会导致ports与expose端口映射失效
  • 添加容器内 hosts 映射:在docker-compose.yml中添加 extra_hosts

举例:

version: "3.3"
services:
    zookeeper:
        image: zookeeper:3.5.5
        restart: always
        container_name: zookeeper
        ports:
            - "2181:2181"
        expose:
            - "2181"
        environment:
            - ZOO_MY_ID=1
        extra_hosts:
            - "hellxz.test:192.168.1.10"

引用:https://docs.docker.com/network/network-tutorial-host/https://docs.docker.com/compose/compose-file/

本文采用 CC BY 4.0 协议进行授权,转载请标注作者署名及来源。https://www.cnblogs.com/hellxz/p/how_to_add_hosts_on_docker.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东北小狐狸-Hellxz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值