1. 步骤
大致分以下几步:
- 安装docker
- 基础环境准备
- 配置网络,并启动docker容器
- 配置host及ssh免密登录
- 安装配置hadoop
- 测试使用hadoo
1.1 安装docker
依次执行如下步骤安装docker。如果有docker环境的可以跳过。
yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl start docker
docker -v
1.2 基础环境准备
1.2.1 创建基础的centos7镜像
- 拉取官方centos7镜像
-
docker pull centos
- 通过build Dockfile生成带ssh功能的centos镜像
-
创建Dockerfile文件
vi Dockerfile
将如下内容写入Dockerfile
-
FROM centos MAINTAINER mwf RUN yum install -y openssh-server sudo RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config RUN yum install -y openssh-clients RUN echo "root:qwe123" | chpasswd RUN echo "root ALL=(ALL) ALL" >> /etc/sudoers RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key RUN mkdir /var/run/sshd EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
-
上述内容大概意思是:以centos镜像为基础,设置密码为wqe123,安装ssh服务并启动
-
构建Dockerfile
-
docker build -t="centos7-ssh" .
将生成一个名为
centos7-ssh
的镜像,可以通过docker images
查看
1.2.2 生成有hadoop和jdk环境的镜像
将准备好的包放在当前目录下。hadoop-2.7.7.tar.gz和jdk-8u202-linux-x64.tar.gz
通过build Dockfile生成带hadoop和jdk环境的centos镜像
刚才已经创建了一个Dockerfile了,先将他移开。mv Dockerfile Dockerfile.bak
创建Dockerfile
vi Dockerfile
将以下内容写入:
FROM centos7-ssh
ADD jdk-8u202-linux-x64.tar.gz /usr/local/
RUN mv /usr/local/jdk1.8.0_202 /usr/local/jdk1.8
ENV JAVA_HOME /usr/local/jdk1.8
ENV PATH $JAVA_HOME/bin:$PATH
ADD hadoop-2.7.7.tar.gz /usr/local
RUN mv /usr/local/hadoop-2.7.7 /usr/local/hadoop
ENV HADOOP_HOME /usr/local/hadoop
ENV PATH $HADOOP_HOME/bin:$PATH
RUN yum install -y which sudo
上述内容大概意思是:以上面生成的centos7-ssh为基础,将hadoop和jdk包放进去,然后配好环境变量
构建Dockerfile
docker build -t="hadoop" .
将生成一个名为hadoop的镜像
注:docker build -t=“hadoop”,这个是在dockerfile目录中执行,将dockerfile执行后,生成新的镜像名字为:“hadoop”的容器