centos7镜像创建可以ssh链接的Docker容器

一、Dockerfile

# 指定基础镜像
FROM centos:7
# 配置环境变量和本地软件
ENV PACKGE_DIR=/usr/local

# j安装包放在和Dockerfile同级目录下
ENV JAVA_PACKGE=jdk-8u181-linux-x64.tar.gz
ENV NODEJS_PACKGE=node-v16.20.0-linux-x64.tar.gz
ENV PYTHON_PACKGE=Python-3.9.6.tar.xz

# 拷贝安装包
COPY ./$JAVA_PACKGE $PACKGE_DIR
COPY ./$NODEJS_PACKGE $PACKGE_DIR
COPY ./$PYTHON_PACKGE $PACKGE_DIR

# 安装ssh
RUN yum -y install wget
RUN rm -rf /etc/yum.repos.d/*
RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
RUN yum clean all
RUN yum install -y openssh-server sudo
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN echo "root:root" | chpasswd
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

# 安装JDK
RUN cd $PACKGE_DIR \
 && tar -xf ./$JAVA_PACKGE \
 && mv ./jdk1.8.0_181 ./jdk8   # 解压后的目录名为jdk1.8.0.181

# 安装maven
RUN cd $PACKGE_DIR \
  && wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz  \
  && tar -xf ./apache-maven-3.8.8-bin.tar.gz \
  && mv ./apache-maven-3.8.8 ./maven \
  && mkdir -p /usr/local/maven/repository \
  && mv ./maven/conf/settings.xml ./maven/conf/settings.xml.bak \
  && rm -rf ./apache-maven-3.8.8-bin.tar.gz 
# 复制仓库配置
COPY ./mavenset/settings.xml $PACKGE_DIR/maven/conf/

# 安装NodeJS
RUN cd $PACKGE_DIR \
 && tar -xf ./$NODEJS_PACKGE \
 && mv ./node-v16.20.0-linux-x64 ./nodeJS 

# 安装python3
RUN yum -y install openssl-devel bzip2-devel ncurses-devel readline-devel sqlite-devel libffi-devel xz-devel gdbm-devel tk-devel gcc automake autoconf libtool make
RUN cd $PACKGE_DIR \
 && tar -xf ./$PYTHON_PACKGE 

RUN cd  $PACKGE_DIR/Python-3.9.6 \
 && ./configure prefix=$PACKGE_DIR/python3.9 --with-ensurepip=install \
 && make clean \
 && make \
 && make install

# 安装git
RUN yum -y install git
RUN git config --global user.name xiaojy \
 && git config --global user.email xiaojy@xiao.com

# RUN ln -sf $PACKGE_DIR/python3.9/bin/python3 /usr/bin/python


# 删除安装包
RUN rm -rf $PACKGE_DIR/$JAVA_PACKGE
RUN rm -rf $PACKGE_DIR/$NODEJS_PACKGE
RUN rm -rf $PACKGE_DIR/$PYTHON_PACKGE
RUN rm -rf $PACKGE_DIR/Python-3.9.6
 

# 配置环境变量
RUN echo "export JAVA_HOME=$PACKGE_DIR/jdk8" >> /etc/profile
RUN echo  'export PATH=$PATH:$JAVA_HOME/bin'>> /etc/profile

RUN echo "export NODE_HOME=$PACKGE_DIR/nodeJS" >> /etc/profile
RUN echo  'export PATH=$PATH:$NODE_HOME/bin'>> /etc/profile

RUN echo "export PYTHON_HOME=$PACKGE_DIR/python3.9" >> /etc/profile
RUN echo  'export PATH=$PATH:$PYTHON_HOME/bin'>> /etc/profile

RUN echo "export MAVEN_HOME=$PACKGE_DIR/maven" >> /etc/profile
RUN echo  'export PATH=$PATH:$MAVEN_HOME/bin'>> /etc/profile



# 暴露端口
EXPOSE 22
# 入口
CMD ["/usr/sbin/sshd", "-D"]

docker  build  -t centos-ssh .
docker run --name cent -p 2222:22 -d centos-ssh
posted @ 2023-06-02 21:47  xiaojy  阅读(309)  评论(0)    收藏  举报