一、准备工作
1、在安装cm的机器上安装好docker的环境,参考https://blog.csdn.net/NC_NE/article/details/108169361
2、下载jdk和jdbc(mysql)
jdk-8u144-linux-x64.tar.gz,mysql-connector-java-5.1.27-bin.jar
需要将mysql-connector-java-5.1.27-bin.jar重命名mysql-connector-java.jar
3、下载parcle文件和rpm文件
parcle: https://archive.cloudera.com/cdh6/
rpm: https://archive.cloudera.com/cm6/
二、搭建本地yum源
1、安装http服务
yum -y install httpd
2、启动http服务
systemctl start httpd
3、查看是否启动成功
netstat -nlpt | grep 80 #查看80端口是否开启
4、关闭防火墙和SELINUX
5、页面访问测试
在/var/www/html/路径下创建cdh6.2文件夹里面再创建cdh6.2和cm6.2文件夹,将parcle和rpm上传
cdh6.2里面存放parcle文件
cm6.2里面存放rpm文件
三、Dockerfile编写
在/opt/下创建docker_cm6.3.2文件夹将相关文件放到该目录下
Dockerfile
FROM centos:7.5.1804
ADD jdk-8u144-linux-x64.tar.gz /usr/java
COPY env.sh /opt/
RUN mkdir -p /usr/share/java
COPY mysql-connector-java.jar /usr/share/java
RUN rm -f /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& chmod 755 /opt/env.sh \
&& bash /opt/env.sh && source /etc/profile \
&& yum -y install perl wget /sbin/service
WORKDIR /opt
RUN wget http://192.168.74.160/cdh6.2/cm6.2/cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm \
&& wget http://192.168.74.160/cdh6.2/cm6.2/cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm \
&& rpm -ivh /opt/cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm \
&& rpm -ivh /opt/cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm \
&& rm -rf /opt/*.rpm
EXPOSE 7180 7182
CMD ["systemctl start cloudera-scm-server"]
env.sh
#!/bin/bash
##jdk config
echo 'export JAVA_HOME=/usr/java/jdk1.8.0_144
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$JAVA_HOME/bin:$PATH:/usr/local/mysql/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile
start.sh 此文件里面的镜像ID需要构建好镜像后填写
#!/bin/bash
docker run -d --privileged=true -p 6180:7180 -p 6182:7182 -v /opt/cloudera/parcel-repo:/opt/cloudera/parcel-repo --add-host hadoop-102:192.168.74.102 --add-host hadoop-103:192.168.74.103 --add-host hadoop-104:192.168.74.104 --hostname dockercm 9cf334537edc init
-v /opt/cloudera/parcel-repo:/opt/cloudera/parcel-repo需要将parcle文件放到本地的/opt/cloudera/parcel-repo目录下,这样就不用放到容器里面
四、构建镜像和启动容器
1、构建镜像
docker build -t cm6.2:v1.0 .
成功如图所示
2、启动镜像
./start.sh
3、进入容器测试cm的数据库
进入容器
docker exec -it 1b97d354028d /bin/bash
测试cm数据库
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h192.168.74.160 scm root 123123
查看cm的启动日志
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
页面登入访问
到此CM就在docker容器里面安装完成了