• 将程序打包镜像并上传到harbor仓库


    打包镜像

    打包镜像可以有多种方法。

    1. 通过idea的docker插件,配合docker的docker engine API 直接根据ide的dockerfile,创建镜像,并自动上传到docker服务器。docker服务器可以本地部署,也可以直接链接远程服务器。但是要注意,docker engine API服务没有鉴权功能,换句话说,端口一旦开放,谁都能用,极为容易被入侵,建议启动必要的安全措施,如限制内网访问,请求白名单等等。

    2. 开发人员把jar包,前端发不好的页面文件夹提供给运维,运维根据开发要求编写dockerfile,然后通过docker build命令进行打包。同样可以在运维本地电脑,也可以直接在服务器操作。

    3. 配置CI系统,比方说jenkins,关联gitlab,maven,通过配置流程脚本方式,拉取源码,完成本地打包以及创建镜像操作。

    原则上3是最优方案,但是jenkins需要专人维护,且过程脚本需要及时更新,并会占用不少服务器资源,出去大型自运营平台外,怕是很难承担这块成本。

    至于1,2,根据需要自行判定吧,有专门的运维,可以让运维搞,没有的话,研发人员直接打包也行。1根据情况还可以优化下,比方说有测试环境,开发人员直接传镜像到测试环境,测试完成后,运维直接在测试环境上给镜像打tag,上传harbor。具体分工看人员配置和资源配置自行定制。

    上传Harbor镜像

    搭建Harbor比较麻烦,特别是配置证书什么的,这里请自行百度。

    我们现在有一个Harbor服务器了,由于域名证书是自行签发,所以需要做些调整。部分步骤可以不操作,具有特殊性,请自行判断场景调整。

    1. vim /etc/hosts  增加域名解析到harbor。这里配置  shandong.harbor.cn  172.17.0.22(内网harbor服务器地址,内网带宽大且免费)

    2. 由于证书是自行签发,需要修改docker的daemon.json,配置信任。

    vim /etc/docker/daemon.json

     重点是插入如下配置。

    1. "insecure-registries":[
    2. "shandong.harbor.cn:55443"
    3. ],

    exec-opts配置成systemd是因为装了k8s。

    3. 登陆私有harbor

    docker login shandong.harbor.cn:55443

    然后根据提示录入harbor的用户名和密码。登陆一次后会自动缓存认证信息,不需要重复录入,效果如下:

     这时你的镜像库已经切换到自己的harbor下了。

    4. 对image进行打包

    docker images查看现有镜像

     test2就是我们用来演示的镜像

    docker tag test2 shandong.harbor.cn:55443/dict/test:v1

    上述命令就是给test2镜像重新打tag。这里要注意重命名格式:harbor地址/目录/镜像名:版本

    执行push的时候会根据这个路径进行推送,同时要注意,登陆用户要有足够的权限。

    docker images

     可以看到,创建了一个新的镜像。

    执行推送

    docker push shandong.harbor.cn:55443/dict/test2:v2

     登陆harbor后台看一眼

    镜像已经上传成功。

    这样就完成了本地系统打包成镜像,然后提交到harbor私有仓库的过程。

    现在程序多是前后台分离,推荐前后台分别打包提交,比较容易维护,且需要弹性扩展时也方便。当然对于硬上k8s的系统来说,为了省资源,你打包到一个镜像里面也可以的。不过这就需要运维单独写dockerfile单独打包上传了。

  • 相关阅读:
    大数据-之LibrA数据库系统告警处理(ALM-25005 Nscd服务异常)
    刷题记录:牛客NC13947Contest
    Netty(一)- Netty与BIO、NIO、AIO介绍
    @ 代码随想录算法训练营第9周(C语言)|Day63(单调栈)
    Unity笔记(7):Shader【着色器】
    网络安全(黑客)从零开始的自学指南(第二章)
    Maven 使用过程中碰到的问题持续集成
    MSQL系列(九) Mysql实战-Join算法底层原理
    【pandas小技巧】--按类型选择列
    爬虫项目(七):CSDN博客全部文章信息爬取
  • 原文地址:https://blog.csdn.net/lanwilliam/article/details/125905514