本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

所有镜像发布于 csanchez/maven,扩展自Docker官方镜像的版本同时发布于 maven。
查看Docker Hub maven 和 csanchez/maven 获取最新标签列表
csanchez/maven 仓库下查看Docker Hub csanchez/maven 获取最新标签列表
Apache Maven 是一款软件项目管理与理解工具。基于项目对象模型(POM)概念,Maven可从中央信息源管理项目的构建、报告和文档。
可直接使用Maven Docker镜像运行Maven项目,通过 docker run 传递Maven命令:
docker run -it --rm --name my-maven-project -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.3-jdk-8 mvn verify
docker run -it --rm --name my-maven-project -v "$(Get-Location)":C:/Src -w C:/Src csanchez/maven:3.3-jdk-8-windows mvn verify
docker run -it --rm --name my-maven-project -v "$(Get-Location)":C:/Src -w C:/Src maven:3.3-jdk-8-windows mvn clean install
此为基础镜像,包含最精简的必要依赖。若在 Dockerfile 中添加自定义包,可按以下方式构建本地镜像:
docker build --tag my_local_maven:3.6.0-jdk-8 .
docker build -f Dockerfile.windows --tag my_local_maven:3-jdk-9-windows --build-arg WINDOWS_DOCKER_TAG=1803 .
可使用Maven构建应用并通过多阶段构建将其打包到不含Maven的镜像中:
# 构建阶段 FROM maven WORKDIR /usr/src/app COPY pom.xml . RUN mvn -B -e -C -T 1C org.apache.maven.plugins:maven-dependency-plugin:3.1.1:go-offline COPY . . RUN mvn -B -e -o -T 1C verify # 打包阶段(不含Maven) FROM openjdk COPY --from=0 /usr/src/app/target/*.jar ./
通过创建卷并挂载到 /root/.m2,可在容器间重用本地Maven仓库:
docker volume create --name maven-repo docker run -it -v maven-repo:/root/.m2 maven mvn archetype:generate # 下载依赖 docker run -it -v maven-repo:/root/.m2 maven mvn archetype:generate # 重用已下载依赖
或直接使用主机的 .m2 缓存目录(如与IDE共享的目录):
docker run -it --rm -v "$PWD":/usr/src/mymaven -v "$HOME/.m2":/root/.m2 -v "$PWD/target:/usr/src/mymaven/target" -w /usr/src/mymaven maven mvn package
$MAVEN_CONFIG 目录(默认 /root/.m2 或 C:\Users\ContainerUser\.m2)可配置为卷,故构建时复制的内容会丢失。为此提供 /usr/share/maven/ref/(或 C:\ProgramData\Maven\Reference)目录,容器启动时会将其内容复制到 $MAVEN_CONFIG。
要创建预打包仓库,需准备含所需依赖的 pom.xml 并在 Dockerfile 中使用:
COPY pom.xml /tmp/pom.xml RUN mvn -B -f /tmp/pom.xml -s /usr/share/maven/ref/settings-docker.xml dependency:resolve
添加自定义 settings.xml 到镜像:
COPY settings.xml /usr/share/maven/ref/
示例可查看 tests 目录。
Maven需用户主目录存储依赖,若用户不存在需设置 user.home Java属性。例如,以用户 1000 运行并挂载主机Maven仓库:
docker run -v ~/.m2:/var/maven/.m2 -ti --rm -u 1000 -e MAVEN_CONFIG=/var/maven/.m2 maven mvn -Duser.home=/var/maven archetype:generate
maven 镜像提供多种变体,适用于不同场景:
maven:<version>默认镜像,适用于临时容器(挂载源码运行)及作为基础镜像构建其他镜像,含最精简依赖。
docker build -t maven .
测试使用 bats(Linux)和 pester(Windows,需Pester 4.x)编写,位于 tests 目录。通过环境变量 TAG 指定测试镜像:
TAG=jdk-11 bats tests
$env:TAG="jdk-11" ; Invoke-Pester -Path tests
Linux:
for dir in $(/bin/ls -1 -d */ | grep -v 'tests\|windows'); do TAG=$(basename $dir) bats tests; done
Windows:
Get-ChildItem -Path windows\* -File -Include "Dockerfile.windows-*" | ForEach-Object { Push-Location ; $env:TAG=$_.Name.Replace('Dockerfile.windows-', '') ; Invoke-Pester -Path tests ; Pop-Location }
brew install bats 安装git submodule init git submodule update
需向 docker-library/official-images 提交PR,通过 publish.sh 运行 generate-stackbrew-library.sh 实现。
查看镜像中软件的许可证信息。
通过 GitHub issue 提交问题,或在Freenode的 #docker-library IRC频道联系官方镜像维护者。
欢迎贡献功能、修复或更新。大型贡献建议先通过 GitHub issue 讨论,以确保方向正确并避免重复工作。

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429