如何发布开源jar包到docker hub的公共镜像

概述

以sentinel 1.8.1的官网下载的jar包为例,发布到docker hub镜像上。

操作步骤

1.下载最新版本的jar包

官方地址:https://github.com/alibaba/Sentinel/releases

2.创建Dockerfile文件

#penjdk:8-jre 为基础镜像,来构建此镜像,可以理解为运行的需要基础环境
FROM openjdk:8-jre
#WORKDIR指令用于指定容器的一个目录, 容器启动时执行的命令会在该目录下执行。
WORKDIR /opt/docker/images/metabase/
#将当前spring.jar 复制到容器根目录下
ADD sentinel-dashboard-1.8.1.jar app.jar
#将依赖包 复制到容器根目录/libs下,spring.jar已不再需要添加其它jar包
#ADD libs /libs
#暴露容器端口为8080 Docker镜像告知Docker宿主机应用监听了8080端口
EXPOSE 8080
#容器启动时执行的命令
CMD java -jar app.jar

3.生成docker镜像文件

docker build -t 名称:版本 .

sentinel的完整样例

docker build -t sentinel-dashboard:1.8.1 .

注意:不要省略最后的一点符号“.”,表示生成到当前路径

如果需要指定Dockerfile名称,则增加-f参数,如下

docker build -f /path/to/a/Dockerfile -t 名称:版本  .

4.查看镜像文件和运行调试

命令如下:

docker images

可以查看sentinel启动配置项官方文档
https://sentinelguard.io/zh-cn/docs/startup-configuration.html

本地直接运行调试,启动镜像

docker run -p 9090:9090 -d matecloud/sentinel-dashboard

5.发布镜像

网址

https://hub.docker.com/

首先得注册账号和密码,留存5.3步骤备用

5.1.发布命令,两个步骤

查看官方文档
https://docs.docker.com/docker-hub/

5.2.sentinel的命令样例

  • 打tag
docker tag docker.io/library/sentinel-dashboard:1.8.1 matecloud/sentinel-dashboard:1.8.1
  • push
docker push matecloud/sentinel-dashboard:1.8.1

5.3.注意点

直接操作会报错,报错信息如下:

denied: requested access to the resource is denied

这是因为我们没有登录导致的,所以先用注册的账号密码登录

docker login

输入账号密码,再次执行docker push,就可以发布成功了。