docker安装过程参考:https://docs.docker.com/engine/install/centos/
安装前,确保网络畅通,确保登录了root账号,或者具有root权限的账号。
查看当前centos系统的内核版本
uname -r
当前centos内核版本必须要高于3.10,满足要求之后再继续后续步骤。
更新yum包
sudo yum update -y
确保yun包都更新到最新版。
卸载旧版本docker
sudo yum remove docker docker-common docker-selinux docker-engine
如果安装了旧版本的docker,则先卸载旧版本。
安装工具包和依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
安装yum-util工具包和device-mapper依赖包。
设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果连接超时,可以使用 alibaba 的镜像源:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果此处设置成功,则会显示:repo saved to /etc/yum.repos.d/docker-ce.repo
安装最新版docker
sudo yum install docker-ce -y
启动docker
sudo systemctl start docker
sudo systemctl enable docker
启动docker,并将其加入到开机自启动。
验证docker是否安装成功
docker version
出现以下的两部分信息(Client和Server)则为成功:
[root@hadoop102 ~]# docker version
Client: Docker Engine - CommunityVersion: 23.0.1API version: 1.42Go version: go1.19.5Git commit: a5ee5b1Built: Thu Feb 9 19:51:00 2023OS/Arch: linux/amd64Context: defaultServer: Docker Engine - CommunityEngine:Version: 23.0.1API version: 1.42 (minimum version 1.12)Go version: go1.19.5Git commit: bc3805aBuilt: Thu Feb 9 19:48:42 2023OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.6.18GitCommit: 2456e983eb9e37e47538f59ea18f2043c9a73640runc:Version: 1.1.4GitCommit: v1.1.4-0-g5fd4c4ddocker-init:Version: 0.19.0GitCommit: de40ad0
下载doris源码
此处需要wget命令下载源码,如果没有的话需要手动安装一下,安装命令如下:
yum install wget -y
将目录切换到/opt/software下,然后下载doris源码:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.1/1.1.0-rc05/apache-doris-1.1.0-src.tar.gz
此处是选择了doris1.1.0版本,大家可按需选择自己需要的版本,官网的源码目录:https://doris.apache.org/zh-CN/download/
解压源码
下载好的doris源码压缩包位于/opt/software,我们将其解压至/opt/module目录下(此处需注意目录):
tar -zxvf /opt/software/apache-doris-1.1.0-src.tar.gz -C /opt/module/
下载docker镜像
下载镜像的时候,需要注意查看doris对应的镜像版本。官网查看链接:https://doris.apache.org/zh-CN/docs/install/source-install/compilation
本案例中doris1.1.0版本对应的镜像就是apache/doris:build-env-for-1.1.0,下载docker镜像命令:
docker pull apache/doris:build-env-for-1.1.0
下载完成后,可通过如下命令查看镜像下载是否完成:
docker images
如果下载完成,则出现以下信息:
[root@hadoop102 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
apache/doris build-env-for-1.1.0 dde1b354e49b 8 months ago 4.41GB
apache/doris build-env-for-1.0.0 bc54bb07cd7b 9 months ago 4.59GB
运行镜像
运行镜像命令如下所示,docker run其实是启动一个容器的命令,该命令是一次性启动容器,退出时容器会终止。有关docker run的参数参考:https://docs.docker.com/engine/reference/commandline/run/。
docker run -it \
-v /opt/module/.m2:/root/.m2 \
-v /opt/module/apache-doris-1.1.0-src:/root/apache-doris-1.1.0-src apache/doris:build-env-for-1.1.0
第3行的-v参数后面跟着的是指定一个bind mounts,就是以挂载本地 Doris 源码目录的方式运行镜像,这样编译的产出二进制文件会存储在宿主机中,不会因为镜像退出而消失。
第2行的-v参数是指将镜像中 maven 的 .m2
目录挂载到宿主机目录,以防止每次启动镜像编译时,重复下载 maven 的依赖库。
运行成功后,会发现已经进入到docker容器中,下面第四行显示的已经位于容器中:
[root@hadoop102 module]# docker run -it \
> -v /opt/module/.m2:/root/.m2 \
> -v /opt/module/apache-doris-1.1.0-src:/root/apache-doris-1.1.0-src apache/doris:build-env-for-1.1.0
[root@3e1d8221dc54 ~]
切换jdk版本
在容器中通过java -version查看jdk版本,然后选择jdk版本,让其与宿主机的jdk版本保持一致。
以下是切换到java1.8:
alternatives --set java java-1.8.0-openjdk.x86_64
alternatives --set javac java-1.8.0-openjdk.x86_64
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
编译doris
如果是第一次使用 build-env-for-0.15.0
或之后的版本,第一次编译的时候要使用如下命令:
sh build.sh --clean --be --fe
这是因为 build-env-for-0.15.0 版本镜像升级了 thrift(0.9 -> 0.13),需要通过 --clean 命令强制使用新版本的 thrift 生成代码文件,否则会出现不兼容的代码。
其他情形用如下命令编译:
sh build.sh
接着便是漫长的等待编译过程…