首先要安装好docker并开启docker,这个就不赘述了,网上教程很多
systemctl start docker
创建基础的centos7
镜像
-
在
/docker
中新建centos-ssd-dockerfile
目录 -
进入该目录,创建
Dockerfile
并进行编写FROM centos:7 MAINTAINER Jensen #install vim & net-tools RUN yum -y install vim RUN yum -y install net-tools #install rsync RUN yum -y install rsync #安装ssh 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 #配置root名 #123456是ssh密码 RUN echo "root:123456" | chpasswd RUN echo "root ALL=(ALL) ALL" >> /etc/sudoers #生成ssh key 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服务 RUN mkdir /var/run/sshd EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
-
构建镜像
docker build -f Dockerfile -t centos7-ssh-sync .
这里可能会报错,说镜像不对,这时候需要改一下
DNS
vim /etc/sysconfig/network-scripts/ifcfg-ensxx 在其中加入: DNS1=114.114.114.114
然后重启网络服务:
systemctl restart network.service
-
这时候
docker images
中就有了centos7-ssh-sync
镜像
创建Hadoop
和jdk8
镜像
-
在
/docker
中新建hadoop-dockerfile
目录 -
在
hadoop-dockerfile
中导入hadoop-3.1.3.tar.gz
和jdk-linux-x64.tar.gz
(可以在windows中下好,然后导入到这个目录中) -
进入该目录,创建
Dockerfile
并进行编写FROM centos7-ssh-sync MAINTAINER Jensen # install jdk8 ADD jdk-linux-x64.tar.gz /usr/local/ RUN mv /usr/local/jdk1.8.0_131 /usr/local/jdk1.8 ENV JAVA_HOME /usr/local/jdk1.8 ENV PATH $PATH:$JAVA_HOME/bin # install hadoop3.1.3 ADD hadoop-3.1.3.tar.gz /usr/local/ ENV HADOOP_HOME /usr/local/hadoop-3.1.3 ENV PATH $PATH:$HADOOP_HOME/bin ENV PATH $PATH:$HADOOP_HOME/sbin WORKDIR /usr/local
-
构建镜像
docker build -f Dockerfile -t centos7-hadoop .
-
这时候
docker images
中就有了centos7-hadoop
镜像
测试是否正确安装了hadoop
和jdk8
-
docker run -itd --name hadoop01 --restart=always --privileged=true centos7-hadoop /bin/bash
-
测试
hadoop
hadoop version # 可以看到版本号
-
测试
jdk8
java -version # 可以看到版本号