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

相关推荐
哈里谢顿34 分钟前
修改并重新部署docker项目流程
docker
code喵喵2 小时前
docker-compose安装常用中间件
docker·中间件·容器
山岚的运维笔记3 小时前
AlpineLinux使用docker部署prometheus
docker·容器·prometheus
咚咚?3 小时前
docker 启动中间件
docker·中间件·容器
csdn_aspnet4 小时前
在 Docker 上安装和配置 Kafka、选择用于部署 Kafka 的操作系统
docker·kafka
乌托邦的逃亡者9 小时前
Docker的/var/lib/docker/目录占用100%的处理方法
运维·docker·容器
OKUNP13 小时前
Docker高级管理--容器通信技术与数据持久化
docker·容器·php
用户68554496927317 小时前
第一周作业
docker
星辰云-20 小时前
【超详细】CentOS系统Docker安装与配置一键脚本(附镜像加速配置)
linux·docker·centos
果子⌂1 天前
Docker-构建镜像并实现LNMP架构
mysql·nginx·docker·容器·架构·php