本地构建包含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

相关推荐
明月与玄武1 小时前
Jenkins+Docker+Git实现自动化CI/CD
git·docker·jenkins·ci/cd流水线
小周学学学1 小时前
docker安装与简单项目上手
运维·docker·容器
小刘|2 小时前
腾讯云服务上下载docker以及使用Rabbitmq的流程
docker·rabbitmq·腾讯云
云途行者3 小时前
使用 docker 安装 openldap
运维·docker·容器
Andy杨5 小时前
20250718-1-Kubernetes 应用程序生命周期管理-应用部署、升级、弹性_笔记
linux·docker·容器
别致的影分身11 小时前
Docker 镜像原理
运维·docker·容器
阿葱(聪)11 小时前
java 在k8s中的部署流程
java·开发语言·docker·kubernetes
Elastic 中国社区官方博客13 小时前
在 Windows 上使用 Docker 运行 Elastic Open Crawler
大数据·windows·爬虫·elasticsearch·搜索引擎·docker·容器
玄辰星君14 小时前
【MAC】nacos 2.5.1容器docker安装
macos·docker·nacos
土小帽软件测试14 小时前
docker安装、启动jenkins服务,创建接口自动化定时任务(mac系统)
docker·容器·jenkins