docker搭建hadoop分布式集群
1. 环境准备
1.1 Centos7操作系统
1.2 centos7中安装docker
参考【CentOS7安装docker.md】
1.3 关闭selinux
[root@#localhost /]# vi /etc/selinux/config
SELINUX=disabled
2. 构建hadoop基础镜像
使用dockerfile文件方式进行构建
[root@#localhost ~]# mkdir /docker
[root@#localhost ~]# cd /docker
[root@#localhost docker]# mkdir centos-ssh-root
[root@#localhost docker]# cd centos-ssh-root/
[root@#localhost centos-ssh-root]# vi dockerfile
# 选择一个已有的os镜像作为基础
FROM centos
# 镜像的作者
MAINTAINER hzk
# 安装openssh-server和sudo软件包,并且将sshd的UsePAM参数设置成no
RUN yum install -y openssh-server sudo
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
#安装openssh-clients
RUN yum install -y openssh-clients
# 添加测试用户root,密码root,并且将此用户添加到sudoers里
RUN echo "root:root" | chpasswd
RUN echo "root ALL=(ALL) ALL" >> /etc/sudoers
# 下面这两句比较特殊,在centos6上必须要有,否则创建出来的容器sshd不能登录
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
# 启动sshd服务并且暴露22端口
RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
[root@#localhost centos-ssh-root]# docker build -t="hzk/centos-ssh-root" .
查询刚才构建成功的镜像
[root@#localhost centos-ssh-root-jdk]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hzk/centos-ssh-root latest e5e59dc176a8 28 minutes ago 315.9 MB
job1 latest b9d248c57b45 About an hour ago 1.093 MB
centos latest 970633036444 4 weeks ago 196.7 MB
hello-world latest c54a2cc56cbb 8 weeks ago 1.848 kB
busybox latest 2b8fd9751c4c 9 weeks ago 1.093 MB
3. 基于基础镜像再构建一个带有jdk的镜像
jdk使用的是1.7版本
[root@#localhost /]# cd /docker/
[root@#localhost docker]# mkdir centos-ssh-root-jdk
[root@#localhost docker]# cd centos-ssh-root-jdk/
[root@#localhost centos-ssh-root-jdk]# cp -rvf /usr/local/java7/ .
[root@#localhost centos-ssh-root-jdk]# vi dockerfile
FROM hzk/centos-ssh-root
ADD java7 /usr/local
ENV JAVA_HOME /usr/local/java7
ENV PATH $JAVA_HOME/bin:$PATH
[root@#localhost centos-ssh-root-jdk]# docker build -t=