这里以阿里云镜像仓库为例演示,将本地springboot项目生成镜像并推送至远程仓库

1、项目打包
mvn clean install -Dmaven.test.skip=true
2、编写Dockerfile

假设打包后的jar与Dockerfile文件在同一个文件夹下

Dockerfile文件如下:

FROM openjdk:latest
MAINTAINER wojiushiwo
COPY springboot-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT  ["java","-jar","app.jar"]

编译Dockerfile

 docker build -t springboot:1.0.0 -f Dockerfile .

这里 springboot:1.0.0 表示生成的镜像名是springboot,tag是1.0.0

编译完成,可通过docker images查看镜像

~ docker images | grep 'springboot'
springboot                                                1.0.0               fab5182e4cc3        11 minutes ago      531MB
3、登录远程镜像仓库,为镜像打tag

输入密码登录

sudo docker login --username=xx@qq.com registry.cn-hangzhou.aliyuncs.com

打tag语法

$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/xx/springboot:[镜像版本号]

注意:上面两个命令的话,如果操作用户是root,则不需要加sudo了

示例

docker tag fab5182e4cc3 registry.cn-hangzhou.aliyuncs.com/xx/springboot:1.0.0
➜  ~ docker images | grep 'springboot'
registry.cn-hangzhou.aliyuncs.com/xx/springboot   1.0.0               fab5182e4cc3        11 minutes ago      531MB
springboot                                                1.0.0               fab5182e4cc3        11 minutes ago      531MB
4、推送打好tag的镜像至远程仓库

语法

sudo docker push registry.cn-hangzhou.aliyuncs.com/xx/springboot:[镜像版本号]

注意:上面的命令,如果操作用户是root,则不需要加sudo了
示例

➜  ~ docker push registry.cn-hangzhou.aliyuncs.com/xx/springboot:1.0.0
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/xx/springboot]
e333bed1dd41: Pushed
7383823c9e88: Pushed
88e64033fc7f: Layer already exists
0466be121ce3: Layer already exists
b87942114db6: Layer already exists
1.0.0: digest: sha256:60ee6bcb34c42750ccadb8e5896163b847399c563cdd4ae6e957fe3905c71e69 size: 1373
5、使用镜像

需要使用上传的镜像时,只需要docker pull下来即可

docker pull registry.cn-hangzhou.aliyuncs.com/xx/springboot:[镜像版本号]
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐