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

相关推荐
wodongx12324 分钟前
从一开始部署Android项目Sonarqube的自动化扫码+通知+增量扫描功能(Win环境、Docker,基于Jenkins)
运维·docker·jenkins·1024程序员节
java_logo2 小时前
Docker 部署 Elasticsearch 全流程手册
大数据·运维·mongodb·elasticsearch·docker·容器
Stay Passion2 小时前
Docker 组件:Docker Swarm
运维·docker·容器
路過的好心人2 小时前
Docker + Rabbitmq 集群部署
docker·容器·rabbitmq
源来猿往5 小时前
基于window/ubuntu安装rknn-toolkit2【docker】
docker·1024程序员节·rknn-toolkit2
小小的木头人6 小时前
基于Docker 搭建 Prometheus & Grafana 环境
运维·docker·容器·grafana·prometheus
KevinPedri9 小时前
测试:uk8s创建监控和告警同步飞书等渠道
docker·kubernetes·云计算·1024程序员节
qq_327395039 小时前
ubuntu 24.04 x86_64安装docker
docker
不惑_11 小时前
如何使用 Ansible 安装 Docker
docker·github·ansible
Shannon Law11 小时前
Docker连接超时的解决方法
docker·容器