本地构建包含java和maven的镜像

目录

1.前提条件

2.下载

2.1.创建Dockerfile

3.构建镜像

参考文章


1.前提条件

本地环境需要的系统和软件

  • win10 + Docker Desktop + Powershell

图1 Win10安装Docker后,直接在Powershell使用Docker命令

有些Developer不习惯win10系统,却想要使用Linux,推荐以下方式

  • win10 + WSL2 + Ubuntu(截止202308最新版本是20.04.xx) +Docker(Docker Desktop是兼容WSL2的)

图2 允许Ubuntu直接使用Win10安装的Docker Desktop
图3 Win10 安装WSL2后,再安装Ubuntu子系统,Docker Desktop可以在Ubuntu中使用docker命令

若是一直使用Linux统开发,则直接安装Docker即可以使用了

  • Linux + Docker

2.下载

bash 复制代码
# 下载centos基础镜像,此处是最新的镜像,到202308为止,版本为8.4.2105
docker pull centos:latest
# 下载openjdk,此处版本17.0.8
wget https://aka.ms/download-jdk/microsoft-jdk-17.0.8-linux-x64.tar.gz
# 下载maven,此处版本3.9.4
wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz

2.1.创建Dockerfile

bash 复制代码
# 转到下载目录(前提是已经下载了openjdk和maven的xxx.tar.gz包了)
## 创建Dockerfile
cat << EOF > Dockerfile
# 以centos:laste 构建包含openjdk-17.0.8 和 maven-3.9.4的基础镜像
FROM centos
MAINTAINER <lyg_cn>
WORKDIR /usr/local/java
# ADD和COPY的区别是ADD可以自动解压压缩包
ADD microsoft-jdk-17.0.8-linux-x64.tar.gz  /usr/local/java/
ADD apache-maven-3.9.4-bin.tar.gz /usr/local/maven/
# 设置环境变量
ENV JAVA_HOME=/usr/local/java/jdk-17
ENV MAVEN_HOME=/usr/local/maven/apache-maven-3.9.4
ENV CLASSPATH=.:$JAVA_HOME/lib/jrt-fs.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
# 加这句命令,可以在后台驻留运行
CMD ["/bin/bash"]
EOF

3.构建镜像

bash 复制代码
# 在Dockerfile所在目录执行以下命令
# 构建基础镜像(最后的点不能丢失)
docker build -f ./Dockerfile -t openjdk-maven:17.0.8-3.9.4 .
# 运行容器
docker run --name testinst:1.0 -it -p 9025:9025  -d openjdk-maven:17.0.8-3.9.4
# 进入容器控制台
docker exec -i -t testinst:1.0 /bin/bash

# ----------------------------------------------------
# 在容器控制台中,可以使用Ctrl + D 退出容器

对于一些其他操作,记录如下

bash 复制代码
# 停止并删除容器
docker container stop testinst:1.0 && docker container rm testinst:1.0
# 删除image
docker images | grep "openjdk-maven" | awk '{print $3}' | xargs docker rmi

参考文章

1.下载 Microsoft Build of OpenJDK | Microsoft Learn | 下载openjdk-17.08

2.Maven -- Download Apache Maven | 下载Maven-3.9.4

相关推荐
大宇进阶之路2 小时前
离线安装docker
运维·docker·容器
sam_文刀2 小时前
Docker面试-24年
docker·云原生
溢彩风华2 小时前
Docker容器技术
docker
0.0-03 小时前
Docker的入门详解
运维·docker·容器
sj11637394033 小时前
docker-compose安装gitlab
docker·容器·gitlab
天蓝蓝235283 小时前
Docker的基本概念和优势
docker·容器·eureka
Maxx Space3 小时前
828华为云征文|部署音乐流媒体服务器 mStream
服务器·docker·华为云·github·媒体影音
@小小小吴4 小时前
Docker搭建一款开源的文档管理系统
运维·docker·容器
罗曼蒂克在消亡5 小时前
django使用笔记6--docker部署
笔记·docker·django
王哲晓6 小时前
第八章 实战:构建Tomcat镜像及发布
java·docker·tomcat