windows环境下在docker中安装doris

1,拉取doris镜像,以doris2.1.10为例

1,拉取be

docker pull apache/doris:be-2.1.10

在这里插入图片描述

2,拉取fe

docker pull apache/doris:fe-2.1.10

在这里插入图片描述

2,创建映射目录

1,创建fe的映射目录
在fe的目录下分别创建 conf ,doris-meta,log目录
在这里插入图片描述

2,创建be的映射目录
在be的目录下分别创建conf,log,storage目录
在这里插入图片描述

3,启动容器

1,启动fe

docker run -itd --name=fe --env FE_SERVERS="fe1:172.17.0.8:9010" --env FE_ID=1 -p 9010:9010 -p 8030:8030 -p 9030:9030 -v /e/Doris/docker-build/data/fe/doris-meta:/opt/apache-doris/fe/doris-meta -v /e/Doris/docker-build/data/fe/log:/opt/apache-doris/fe/log  -v /e/Doris/docker-build/data/fe/conf:/opt/apache-doris/fe/conf apache/doris:fe-2.1.10

fe1的172.17.0.8只是个事例,怎么来的看到最后就知道了
在这里插入图片描述
2,启动be

docker run -itd --name=be --env FE_SERVERS="fe1:172.17.0.8:9010" --env BE_ADDR="172.17.0.9:9050" -p 8040:8040 -v /e/Doris/docker-build/data/be/storage:/opt/apache-doris/be/storage -v /e/Doris/docker-build/data/be/log:/opt/apache-doris/be/log apache/doris:be-2.1.10

在这里插入图片描述
be的172.17.0.9只是个事例,怎么来的看到最后就知道了
3,在docker界面看到已经启动
在这里插入图片描述

4,验证效果

1,流览器输入宿主IP(localhost:8030,127.0.0.1:8030,192.168.1.20:8030均能打开)

在这里插入图片描述
刚启动没有密码,输入root账号点击登录就可以了

5,遇到的IP问题

刚开始我按照官网的流程,先制作镜像再启动容器,但总是失败。后来直接拉取官网提供的镜像,结果依然遇到各种问题:有时 FE 能启动但无法访问,有时 BE 启动后却连不上 FE,甚至很快自动关闭。我在遇到这些问题后,不断尝试各种Google 百度 搜索和 GPT 问答,依然没有找到有效的解决办法。最终仔细排查后,才发现根本原因其实是 Docker 启动容器时指定的 --ip 参数没有生效。比如下面这样的命令:

docker network create --driver bridge --subnet=172.20.80.0/24 doris-network
docker run -itd --name=fe --env FE_SERVERS="fe1:172.20.80.2:9010" --env FE_ID=1 -p 8030:8030 -p 9030:9030 -v E:\Doris\docker-build\data\fe\doris-meta:/opt/apache-doris/fe/doris-meta -v E:\Doris\docker-build\data\fe\conf:/opt/apache-doris/fe/conf -v E:\Doris\docker-build\data\fe\log:/opt/apache-doris/fe/log --network=doris-network --ip=172.20.80.2 apache-doris:2.1-fe
docker run --privileged -itd --name=be --env FE_SERVERS="fe1:172.20.80.2:9010" --env BE_ADDR="172.20.80.5:9050" -p 8040:8040 -v E:\Doris\docker-build\data\fe\storage:/opt/apache-doris/be/storage -v E:\Doris\docker-build\data\fe\conf:/opt/apache-doris/be/conf -v E:\Doris\docker-build\data\fe\log:/opt/apache-doris/be/log --network=doris-network --ip=172.20.80.5 apache-doris:2.1-be

这里,FE的 –ip=172.20.80.2 和 BE 的 –ip=172.20.80.5 参数并没有真正让容器获得指定的 IP。实际上,容器启动后分配到的 IP 地址分别是 172.20.80.1(FE)和 172.20.80.2(BE),导致实际网络和我的预期不一致。因为这样,虽然容器表面上启动成功,但用 localhost:8030 依然无法访问 FE,BE 也会因为无法连接到 FE 而自动关闭。这个问题我不确定是我本地 Docker 有问题还是官网 Linux 版本镜像适配的问题。最后明白原因后,改成使用 Docker 默认的桥接网络以及其自动分配的 IP。Docker 会按顺序分配容器 IP,比如第一个容器分到 172.17.0.2,下一个就是 172.17.0.3。按照这个方法,现在分配给新启动的容器的 IP 就变成了 172.17.0.8 和 172.17.0.9。

最后说一点,官网上的docker启动事例对于小白来说,有点困惑,如下图
在这里插入图片描述
图片中1的位置其实是FE容器启动后的容器IP,2和1相同也是FE的容器IP,3是BE启动后的BE这个容器的IP,上面写的都是“当前机器的内网IP”,让小白很容易以为三个IP是一样的或者理解成是宿主主机的IP -_-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值