1、阿里雲鏡像倉庫
阿里雲提供了docker鏡像倉庫,可以上傳私有的鏡像
2、com.spotify 提供的docker構建插件 docker-maven-plugin
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> </plugin>
3、window docker
需要啟用 Hyper-V 功能,然后安裝docker
具體配置:
1、maven docker-maven-plugin 插件
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <configuration> <serverId>docker-aliyun</serverId> <registryUrl>registry.cn-hangzhou.aliyuncs.com</registryUrl> <baseImage>java:8</baseImage> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <imageName>registry.cn-hangzhou.aliyuncs.com/company/image-name</imageName> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
2、修改 ~/.docker/config.json 配置文件
{
"auths": {
"registry.cn-hangzhou.aliyuncs.com": {}
},
"credsStore": "wincred"
}
將以上配置的 "credsStore":"wincred" 去掉,這樣在登陸后會將認證保存在此文件中,不然 docker-maven-plugin 獲取不到認證信息,導致推送鏡像失敗
3、在 PowerShell 或 CMD 中登陸 阿里雲 docker registry
在阿里雲創建倉庫后,點擊管理可以看到操作指引,比如 登陸、推送、拉取等,登陸命令為:
docker login --username=ali_account@company.com registry.cn-hangzhou.aliyuncs.com
完了之后輸入開通鏡像倉庫 namespace 時輸入的密碼,完成登陸,登陸之后 ~/.docker/config.json 類似
{
"auths": {
"registry.cn-hangzhou.aliyuncs.com": {
"auth": "ZG9ja2VyQDM2MGVkaW******UAxODU2ODMyNjA0MDgzODA5OkRIQDM2MGVkaWFuIzIwMTch"
}
}
}
其中 auth 就是保存的認證信息
4、現在就可以使用maven命令進行打包推送了
mvn clean package docker:push
完成后可在阿里雲中鏡像倉庫查看,可以在其他地方使用該鏡像。
com.spotify:docker-maven-plugin 常用操作有:
docker:build 僅構建docker鏡像(不推送)
docker:push 推送鏡像到遠程倉庫