如何以centos为原始镜像,添加wget、culr、netstat、JDK、maven、npm、nodejs等软件并设置环境变量,保存为新的镜像
时间: 2023-12-26 16:04:00 浏览: 133
制作centos基础镜像的方法
可以按照以下步骤在CentOS基础镜像上添加所需的软件,并设置环境变量,最终保存为新的镜像:
1. 创建一个Dockerfile文件:
```
FROM centos:7
# 安装wget、curl、net-tools
RUN yum install -y wget curl net-tools
# 安装JDK
ENV JAVA_VERSION jdk1.8.0_281
ENV JAVA_HOME /usr/local/jdk1.8.0_281
RUN wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" \
"https://download.oracle.com/otn-pub/java/jdk/8u281-b09/89d678f2be164786b292527658ca1605/${JAVA_VERSION}-linux-x64.tar.gz" \
-O /tmp/${JAVA_VERSION}-linux-x64.tar.gz && \
tar -xzf /tmp/${JAVA_VERSION}-linux-x64.tar.gz -C /usr/local/ && \
ln -sf ${JAVA_HOME}/bin/java /usr/bin/java && \
rm -rf /tmp/${JAVA_VERSION}-linux-x64.tar.gz
# 安装maven
ENV MAVEN_VERSION 3.6.3
ENV MAVEN_HOME /usr/local/apache-maven-${MAVEN_VERSION}
RUN wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
-O /tmp/maven.tar.gz && \
tar -xzf /tmp/maven.tar.gz -C /usr/local/ && \
ln -sf ${MAVEN_HOME}/bin/mvn /usr/bin/mvn && \
rm /tmp/maven.tar.gz
# 安装node.js和npm
ENV NODE_VERSION 14.16.0
RUN wget https://npm.taobao.org/mirrors/node/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz \
-O /tmp/node.tar.gz && \
tar -xzf /tmp/node.tar.gz -C /usr/local/ && \
ln -sf /usr/local/node-v${NODE_VERSION}-linux-x64/bin/node /usr/bin/node && \
ln -sf /usr/local/node-v${NODE_VERSION}-linux-x64/bin/npm /usr/bin/npm && \
rm /tmp/node.tar.gz
```
2. 使用docker build命令构建镜像:
```
docker build -t my-centos .
```
3. 在容器中运行新的镜像:
```
docker run -it my-centos /bin/bash
```
4. 在容器中检查所安装的软件和环境变量是否正确:
```
java -version
mvn -version
node -v
npm -v
```
注意:
1. 由于JDK、Maven和Node.js等软件的下载速度比较慢,建议使用国内的镜像源或替换为本地的安装包,以提高构建速度。
2. 在Dockerfile中设置环境变量时,应使用ENV命令,而不是直接使用export命令。
3. 在构建镜像时,需要联网下载软件包和依赖项。如果在防火墙或代理服务器后面构建镜像,则需要设置代理。可以使用--build-arg选项将代理设置传递给Dockerfile中的命令。
阅读全文