在 Windows 的电脑上安装了 wsl2,发行版是 Ubuntu20.04 ,并在 Windows 上安装了 docker desktop 。 之后尝试在 docker 上部署单机 zookeeper 与 kafka.
docker run -d --name zookeeper -p 2181:2181 -t zookeeper
docker run -d --name kafka -p 9092:9092 --link zookeeper -e KAFKA_ZOOKEEPER_CONNECT=<zookeeper's ip>:2181 -e KAFKA_ADVERTISED_HOST_NAME=wsl2's ip -e KAFKA_ADVERTISED_PORT=9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka
部署 zookeeper 时没有问题,但部署 kafka 时提示
Ports are not available: listen tcp 0.0.0.0:9092: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
之后在 windows 上使用 netstat -aon|findstr '9092'与在 wsl2 上使用 netstat -ap | grep 9092 都没有结果,之后改了端口为 19092 后可以部署了,无论是在 windows 和 wsl2 上也都能查到端口占用。
网络这部分学得一直不好,想知道有没有针对 windows 与 wsl2 以及容器网络讲清楚的文章。
1
loveyu 2021-09-02 13:15:30 +08:00
wsl2 docker 在 windows 下我主要的用途就是拿来测试 build 镜像包, 这个是真好用
然后跑镜像直接 hyper 虚拟机里面执行了(windows 下经常乱套,而且内存占用小机器接受不了) |
2
loveyu 2021-09-02 13:16:45 +08:00
kafka 镜像试试 bitnami-docker-kafka 这个,可能好用点
|
3
murphyyyy 2021-09-02 13:37:01 +08:00
之前猜测, wsl 跟 windows 之间应该是属于不同的网卡, 类似于同一个局域网中的两个 ip ( 猜测 ,网络学的本身并不好
|