避免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
本文作者:东北小狐狸
本文链接:https://www.cnblogs.com/hellxz/p/how_to_add_hosts_on_docker.html
版权声明:本作品采用自由转载-非商用-非衍生-保持署名 (CC BY-NC-ND 3.0)许可协议进行许可。
分类:
Docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2018-03-09 【mybatis笔记】 resultType与resultMap的区别