当前位置: 首页 > news >正文

Docker镜像启动

Docker 网络配置

创建自己的Docker网络

–subnet 子网 e.g. 192.168.0.0
网络模式 bridge、host、none、container
–gateway 网关ip 192.168.0.1

docker network create --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet(默认为bridge模式)

网络其他命令

docker network rm mynet
docker network ls

docker容器使用自创的网络

docker run --d -name xxx --net mynet xxx
e.g. docker run -d --net mynet --name zookeeper -p 2181:2181 wurstmeister/zookeeper

Flink

docker run -d -p 8081:8081 flink:1.10.0

Kafka

docker run -d --net mynet --name zookeeper -p 2181:2181 wurstmeister/zookeeper

(注意,kafka如果设置zk的ip为localhost会连接失败,因为kafka在容器中独占一个ip,zk在容器中独占一个ip,导致kafka连不到zk,需要查看zk的ip并连接才行)

(对kafka来说,它是容器内的组件,所以连不到zk;zk也是容器内的组件,它也连不到kafka,但是本地却可以直接localhost连接kafka,为什么呢?因为kafka虽然运行在容器中,但是它对外暴露了9092端口,映射到了本地的9092,所以我本地访问9092可以访问到;其实本地访问zk也可以访问到,但是zk和kafka是访问不到的,因为它们两个不是同一个网络,但在同一个局域网,当然在添加–net后就是同一个网络了)

docker run -d --name kafka --net mynet -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e KAFKA_LISTENERS=PLAINTEXT://:9092 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -e TZ=Asia/Shanghai -e KAFKA_LOG_DIRS=/kafka/data -v D:\kafka_data:/kafka/data -p 9092:9092 wurstmeister/kafka:2.11-1.0.2

为什么Windows无法访问Kafka

首先,我创建了192.168.0.0的net,并让所有的容器都使用了这个网络
其次,我可以使用localhost:6379访问Redis,证明不是Docker的问题,而是Kafka的配置问题
那么,重点就放在listeners和advertised.listeners上了

在内网环境的Kafka集群不需要advertised.listeners,advertised.listeners用于Kafka对外暴露服务用的
在容器内部zk或者其他组件都可以访问到Kafka,这是listeners的功劳
Kafka映射了端口9092,这样就可以通过访问宿主机的9092访问Kafka,但由于只配置了Listners,只对内网开放,宿主机和容器的网络不同,虽然映射了9092,但是Kafka不对容器外网络提供服务,外部也无法通过宿主机访问Kafka。添加advertised_listeners后,对外提供了访问通道,这样就可以通过宿主机访问了Kafka了,一般来说ip设置为宿主机的ip(localhost是可以的,因为进行了映射,在开放了advertised.listeners后,外部访问宿主机会走到容器内部)

Docker的网络通信

都通过Docker路由进行和宿主机交互的

Redis

docker run --name redis -d ^
–restart unless-stopped ^
-e TZ=Asia/Shanghai ^
-p 6379:6379 ^
-v D:\Develop\Docker\Data\redis\redis.conf:/etc/redis/redis.conf ^
-v D:\Develop\Docker\Data\redis\data:/data ^
redis:5.0.12 ^
redis-server /etc/redis/redis.conf ^
–requirepass 123456 ^
-net mynet ^
–appendonly yes


http://www.mrgr.cn/news/80944.html

相关文章:

  • 获取显示器(主/副屏)友好名称(FriendlyName)
  • JAVA:组合模式(Composite Pattern)的技术指南
  • TDengine 新功能 通过 UID 删除不可见表
  • 类和对象(5)
  • VMware vCenter Server 无法进入虚拟化平台(vSphere)登录界面
  • 代码随想录第52天
  • 门户系统需要压测吗?以及门户系统如何压力测试?
  • 【操作系统不挂科】<内存管理-文件系统实现(18)>选择题(带答案与解析)
  • 什么是静态站点生成器,有哪些特点
  • Python毕业设计选题:基于Python的农产品销售系统的设计与实现_django
  • 稀疏矩阵的存储与计算 gaxpy
  • Spring Cloud Gateway 源码
  • CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer 论文解读
  • Linux shell脚本用于常见图片png、jpg、jpeg、tiff格式批量转webp格式后,并添加文本水印
  • 【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
  • 游戏开发技能系统常用概念
  • 云计算HCIP-OpenStack02
  • 基础2:值类型与右值引用
  • redo log 和 undo log
  • 实现 WebSocket 接入文心一言
  • Golang学习历程【第二篇 fmt包变量、常量的定义】
  • aosp15 - App冷启动
  • 编译原理复习---基本概念+推导树
  • 云计算HCIP-OpenStack01
  • 滴滴的logicFlow流程图组件
  • 通过smem 定时检测系统内存占用情况