1.建立一个网络桥接zk
docker network create -d bridge zk
我们通过docker安装dubbo-admin和zookeeper,为了保证他们能够正常通信,需要使用同一个网络
2.创建zookeeper的docker卷
docker volume create zookeeper_data
3.启动zookeeper,并指定网络和卷
docker run -d \--name zookeeper \--network zk \-p 2181:2181 \-v zookeeper_data:/data \zookeeper:latest
4.查看网络zk的ip
docker network inspect zk
可以看到zk的ip为172.18.0.2
5.创建dubbo-admin的docker卷
docker volume create dubbo_admin_data
6.创建启动dubbo-admin容器,指定网络为zk,设置zookeeper为上面查询出来的地址
docker run -d --name dubbo-admin --network zk -p 8088:8080 \
-e admin.registry.address=zookeeper://172.18.0.2:2181 \
-e admin.config-center=zookeeper://172.18.0.2:2181 \
-e admin.metadata-report.address=zookeeper://172.18.0.2:2181 \
-v dubbo_admin_data:/data \
apache/dubbo-admin:latest
如果(mac m1芯片 )启动有警告,可以指定平台启动,
这个警告是因为你请求的镜像平台是 linux/amd64
,而你的宿主机平台是 linux/arm64/v8
(例如,你使用的是Apple Silicon Mac)。Docker会尝试自动处理这种不匹配,但有时可能会导致性能问题或兼容性问题。
解决警告,指定平台启动
docker run -d --name dubbo-admin --network zk -p 8080:8080 \
-e admin.registry.address=zookeeper://172.18.0.2:2181 \
-e admin.config-center=zookeeper://172.18.0.2:2181 \
-e admin.metadata-report.address=zookeeper://172.18.0.2:2181 \
-v dubbo_admin_data:/data \
--platform linux/amd64 \
apache/dubbo-admin:latest
7.再查看网络zk的ip
docker network inspect zk
可以看到zookeeper和dubbo-admin在同一个网络