doris 0.9.0版本docker镜像制作与使用
1. 安装docker
详情请参见本人博客
2. 编译doris
详情请参见doris官网文档
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。3. 在编译好的doris output文件夹下编写两个Dockerfile
3.1 Dockerfile_fe
FROM centos:centos7.5.1804 RUN mkdir /home/palo/run/ -p # copy jdk and palo binary COPY jdk1.8.0_131/ /home/palo/run/jdk1.8.0_131/ COPY fe/ /home/palo/run/fe/ # set java home ENV JAVA_HOME /home/palo/run/jdk1.8.0_131/ # set fe port: http/thrift/mysql/bdbje EXPOSE 8030 9020 9030 9010 # fe log and meta-data # VOLUME ["/home/palo/run/fe/conf" i"/home/palo/run/fe/log" "/home/palo/run/fe/palo-meta"] WORKDIR /home/palo/run/fe/ CMD "bin/start_fe.sh"
3.2 Dockerfile_be
FROM centos:centos7.5.1804 RUN mkdir /home/palo/run/ -p # copy be COPY be/ /home/palo/run/be/ # set be port: thrift/rpc/http/heartbeat EXPOSE 9060 9070 8040 9050 # fe log and meta-data VOLUME ["/home/palo/run/be/conf", "/home/palo/run/be/log", "/home/palo/run/be/data/"] WORKDIR /home/palo/run/be/ CMD "bin/start_be.sh"
4. 制作docker镜像
4.1 下载jdk1.8.0_131.tar.gz到 output文件夹下并解压,具体可以到oracle官网下载
文件准备完成后的目录结构为
[druid@doris output]$ ls -l total 8 drwxr-xr-x 5 druid druid 40 Apr 11 11:34 apache_hdfs_broker drwxr-xr-x 5 druid druid 40 Apr 11 11:21 be -rw-rw-r-- 1 druid druid 326 Apr 11 13:16 Dockerfile_be -rw-rw-r-- 1 druid druid 454 Apr 11 13:16 Dockerfile_fe drwxr-xr-x 6 druid druid 55 Apr 11 11:21 fe drwxr-xr-x 8 druid druid 255 Mar 15 2017 jdk1.8.0_131
4.2 制作fe镜像
[druid@palo output]$ sudo docker build -t lenmom/doris:fe-0.9.0 -f Dockerfile_fe . [sudo] password for druid: Sending build context to Docker daemon 2.027GB Step 1/8 : FROM centos:centos7.5.1804 ---> cf49811e3cdb Step 2/8 : RUN mkdir /home/palo/run/ -p ---> Using cache ---> ffe6e7a05650 Step 3/8 : COPY jdk1.8.0_131/ /home/palo/run/jdk1.8.0_131/ ---> a0b9c437e9f7 Step 4/8 : COPY fe/ /home/palo/run/fe/ ---> a7706aa9939b Step 5/8 : ENV JAVA_HOME /home/palo/run/jdk1.8.0_131/ ---> Running in bd436cb488d5 Removing intermediate container bd436cb488d5 ---> 9e10bc76f4b5 Step 6/8 : EXPOSE 8030 9020 9030 9010 ---> Running in de0d71ee1f27 Removing intermediate container de0d71ee1f27 ---> 16600856447f Step 7/8 : WORKDIR /home/palo/run/fe/ ---> Running in 2cfe3e4bc04e Removing intermediate container 2cfe3e4bc04e ---> fc999dfbc914 Step 8/8 : CMD "bin/start_fe.sh" ---> Running in fafb6d98095d Removing intermediate container fafb6d98095d ---> 62efbd2bbea0 Successfully built 62efbd2bbea0 Successfully tagged doris:fe-0.9.0
4.3 制作be镜像
[druid@palo output]$ sudo docker build -t lenmom/doris:be-0.9.0 -f Dockerfile_be . Sending build context to Docker daemon 1.163GB Step 1/7 : FROM centos:centos7.5.1804 ---> cf49811e3cdb Step 2/7 : RUN mkdir /home/palo/run/ -p ---> Running in 2ae7543e4f3a Removing intermediate container 2ae7543e4f3a ---> 635d3dd01e5b Step 3/7 : COPY be/ /home/palo/run/be/ ---> 825e46597c07 Step 4/7 : EXPOSE 9060 9070 8040 9050 ---> Running in 21e7742b6da5 Removing intermediate container 21e7742b6da5 ---> c735c437a771 Step 5/7 : VOLUME ["/home/palo/run/be/conf", "/home/palo/run/be/log", "/home/palo/run/be/data/"] ---> Running in 456c4f54c79a Removing intermediate container 456c4f54c79a ---> 392386745a0a Step 6/7 : WORKDIR /home/palo/run/be/ ---> Running in eac0b97ffdba Removing intermediate container eac0b97ffdba ---> a488181610ba Step 7/7 : CMD "bin/start_be.sh" ---> Running in 871bee0625c6 Removing intermediate container 871bee0625c6 ---> cf8f3297619a Successfully built cf8f3297619a Successfully tagged lenmom/doris:be-0.9.0
4.4 查看镜像信息
[druid@palo output]$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE lenmom/doris fe-0.9.0 ecd903182693 2 minutes ago 649MB lenmom/doris be-0.9.0 cf8f3297619a 6 minutes ago 855MB centos centos7.5.1804 cf49811e3cdb 3 weeks ago 200MB
5. 导出镜像与上传镜像
5.1 导出镜像到本地
#命令格式: #docker save -o 要保存的文件名 要保存的镜像 sudo docker save -o doris-fe-0.9.0-docker.img lenmom/doris:fe-0.9.0 #导出fe镜像到本地,默认导出到当前目录,可以指定完整参数 sudo docker save -o doris-be-0.9.0-docker.img lenmom/doris:be-0.9.0 #导出be镜像到本地,默认导出到当前目录,可以指定完整参数
导出后的结果看下图:
5.2 导入镜像
使用5.1中导出的镜像,可以在其他机器的部署环境中,使用load命令导入镜像,直接使用即可
#命令格式: sudo docker load --input 文件 #或者 sudo docker load < 文件名
针对本例中的两个镜像文件,操作命令为:
sudo docker load --input doris-be-0.9.0-docker.img #导入be镜像 sudo docker load --input doris-fe-0.9.0-docker.img #导入fe镜像
5.3 上传镜像
命令格式为: docker push NAME[:TAG]
注意:如果为个人注册的docker hub账号,一定要在镜像名称前面加上自己的docker hub用户名,否则提交上传会失败,出现类似下面的错误
Error response from daemon: pull access denied for xxx, repository does not exist or may require 'docker login'
上传镜像前,需要使用自己的docker hub账号登陆,然后才可以上传镜像文件,下面来操作一个波次看看
5.1 登陆docker hub
输入sudo docker login,然后输入用户名,密码即可。
[druid@palo output]$ sudo docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: {YOUR-DOCKER-HUB-ID} Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
5.2 不带用户名的镜像上传会失败
修改lenmom/doris:be-0.9.0镜像名称为doris:be-0.9.0,即去掉签名的用户id,修改之前的镜像列表为
$sudo docker tag lenmom/doris:be-0.9.0 doris:be-0.9.0 #创建不带用户id的镜像别名 $sudo docker rmi lenmom/doris:be-0.9.0 #删除带用户id的镜像 Untagged: lenmom/doris:be-0.9.0 $sudo docker images #查看镜像列表,带用户id的be镜像应该消失了 REPOSITORY TAG IMAGE ID CREATED SIZE lenmom/doris fe-0.9.0 ecd903182693 41 minutes ago 649MB doris be-0.9.0 cf8f3297619a About an hour ago 855MB centos centos7.5.1804 cf49811e3cdb 3 weeks ago 200MB
现在上传该镜像,上传应该会失败
$sudo docker push doris:be-0.9.0 Error response from daemon: pull access denied for doris, repository does not exist or may require 'docker login'
失败的原因是定位仓库的时候发现没有doris仓库,如果镜像带有用户id,那么默认的仓库是/id/tagname。
5.3 上传带用户id的镜像
[druid@palo194 output]$ sudo docker tag doris:be-0.9.0 lenmom/doris:0.9.0 #添加带用户id的镜像名称 [sudo] password for druid: [druid@palo194 output]$ sudo docker rmi doris:be-0.9.0 #删除不带用户id的镜像名称 Untagged: doris:be-0.9.0 [druid@palo194 output]$ sudo docker images #查看镜像列表 REPOSITORY TAG IMAGE ID CREATED SIZE lenmom/doris fe-0.9.0 ecd903182693 About an hour ago 649MB lenmom/doris be-0.9.0 cf8f3297619a About an hour ago 855MB centos centos7.5.1804 cf49811e3cdb 3 weeks ago 200MB [druid@palo194 output]$ sudo docker push lenmom/doris:be-0.9.0 #上传带用户id的镜像,上传成功 The push refers to repository [docker.io/lenmom/doris] 270d8b1169bb: Preparing 1d301fa1efc4: Preparing 4826cdadf1ef: Preparing
能够上传成功关键在docker.io/lenmom/doris,docker就是靠用户id来定位仓库地址的!!
6. 通过docker来使用制作好的镜像
6.1 启动fe容器
docker run --net=host -p 9030:9030 -p 8030:8030 -p 9010:9010 -p 9020:9020 \ -v /your/workspace/fe/log:/home/palo/run/fe/log \ -v /your/workspace/fe/palo-meta:/home/palo/run/fe/palo-meta \ -v /your/workspace/fe/conf:/home/palo/run/fe/conf/ -i -t -d \ -v /etc/localtime:/etc/localtime:ro lenmom/doris:fe-0.9.0
6.2 启动be容器
docker run --net=host --privileged -p 9050:9050 -p 8040:8040 -p 9060:9060 -p 9070:9070 \ -v /your/workspace/be/log:/home/palo/run/be/log \ -v /your/workspace/be/data:/home/palo/run/be/data \ -v /your/workspace/be/conf:/home/palo/run/be/conf/ \ -i -t -d -v /etc/localtime:/etc/localtime:ro lenmom/doris:be-0.9.0
Have fun with doris!

更多精彩