本文主要记录build 支持hdfs的docker过程中遇到的问题,以及解决方法。
自己写的Dockerfile文件,可以参考学习下:
# Creates pseudo distributed hadoop 2.7.1
#
# docker build -t sequenceiq/hadoop .
FROM localhost:5000/my-centos
MAINTAINER xzp
USER root
# install dev tools
RUN yum clean all && yum update -y
RUN rpm --rebuilddb
RUN yum install -y curl which tar sudo openssh-server openssh-clients rsync wget
# update libselinux. see https://github.com/sequenceiq/hadoop-docker/issues/14
RUN yum update -y libselinux
# passwordless ssh
RUN ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -q -N "" -t rsa -f /root/.ssh/id_rsa
RUN cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
# java
#因为实时下载太慢了,这里取了巧,将本地的文件放上去
#RUN curl -LO 'http://download.oracle.com/otn-pub/java/jdk/7u71-b14/jdk-7u71-linux-x64.rpm' -H 'Cookie: oraclelicense=accept-securebackup-cookie'
ADD jdk-7u71-linux-x64.rpm /root/
RUN chmod +x /root/jdk-7u71-linux-x64.rpm
RUN rpm -i /root/jdk-7u71-linux-x64.rpm
RUN rm /root/jdk-7u71-linux-x64.rpm
ENV JAVA_HOME /usr/java/default
ENV PATH $PATH:$JAVA_HOME/bin
RUN rm /usr/bin/java && ln -s $JAVA_HOME/bin/java /usr/bin/java
# hadoop
#同上,直接放本地文件
#RUN curl -s http://www.eu.apache.org/dist/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz | tar -xz -C /usr/local/
COPY hadoop-