背景

上周看脉脉的时候看到下面这个帖子,领导让搞项目容器化,但是楼主没搞过,对新东西有畏惧感,怂了,然后把机会白白送给其他同事了。

想来我也是差不多这样的,刚到阿里工作的时候,有个好的项目机会来了,领导让我做,我总觉得需要时间准备,等准备好了再上。然后等着等着,项目就给别人做了,别人就成长了,而我在畏首畏尾中止步不前。现在领导也是时不时拿这件事来调侃我。。。

所以嘛,咱的主要目的是学习成长,这周按脉脉帖子上的内容,学一下容器化,实际操作一把。

docker容器化

1.什么是docker

做Java开发的同学应该都知道Java代码要运行在服务器上,都是先打包为jar包,再通过java -jar xxx.jar命令运行,将jar文件在虚拟机上运行。虚拟机就是通过虚拟出一套硬件后,在上面运行一个完整的操作系统的,如阿里云ECS服务器。而docker容器不需要虚拟硬件,而是将容器内的进程直接运行在宿主机的内核,因此容器比传统虚拟机更为轻便。下图是传统虚拟化和Docker容器的对比:

2.docker创建镜像

安装docker步骤可自行搜索,安装完成后我们用京豆脚本的代码做示例

这一步将京豆脚本的jar包构建为镜像,项目目录下创建Dockerfile文件,文件内容如下,注释已经说明每一行的作用

#使用jdk8作为基础镜像
FROM openjdk:8
#指定作者
MAINTAINER dnboy
#暴漏容器的8080端口
EXPOSE 8080
#将复制指定的docker-demo-0.0.1-SNAPSHOT.jar为容器中的job.jar,相当于拷贝到容器中取了个别名
ADD ./target/application.jar /application.jar
#相当于在容器中用cmd命令执行jar包  指定外部配置文件
ENTRYPOINT ["java","-jar","/application.jar"]

然后命令行执行如下命令:

docker build -t jdou

这一步将jdk和jar包都构建为docker镜像,镜像名称为jdou

3.上传镜像

上一步的镜像可以在本地docker里运行,为了让镜像公开,所有人都可以使用,需要将镜像上传到docker hub上,具体步骤是
(1)给镜像打标签

命令行执行

# 修改tag,示例:docker tag ae4ed59c dnboy985/jdou:1.0
docker tag IMAGEID(镜像ID) 仓库:标签# 给镜像打tag,示例:docker tag dnboy985/jdou:1.0 dnboy985/jdou:v1.0
docker tag <上一步的tag> <hub-user>/<repo-name>:<tag>  # tag不指定默认为latest

(2)上传镜像

# 登录docker hub账号,无账号可先自行注册
docker login# push tag,示例:docker push dnboy985/jdou:v1.0
docker push <hub-user>/<repo-name>:<tag>

上传完成后可在docker hub官网上查到镜像,如图是我刚上传完的镜像

所有代码已提交到Github上,有兴趣了解的同学可公众号内回复 京豆 查看源代码,下面是脚本的运行操作步骤

操作步骤

1.安装docker

Windows系统上安装docker步骤:Windows安装docker步骤

docker官网下载地址:Docker Windows下载

按照上面的教程先在电脑上安装好docker

2.拉取镜像

这一步是将京豆脚本镜像拉取到本地电脑,步骤:

  • Window上打开命令行的方式是:按WIN + R 键,在运行窗口里输入cmd 回车之后弹出,Mac上直接打开终端就行
  • 在命令行窗口输入docker pull dnboy985/jdou:v1.0,大概等待10分钟左右就下载完成了

博主这里用的Mac,下载完成后,打开docker,在images选项里找到刚下载的镜像,名称为:dnboy985/jdou

3.运行镜像

在命令行窗口里运行镜像,需要先获取自己京东账号登录后的pt_pinpt_key数据,获取方式见我之前的文章:[奶奶看了都会]教你用脚本薅京东签到羊毛

然后命令行里输入:(注意下面需要替换pt_pin和pt_key)

docker run -d -p 8080:8080 --env PT_PIN=替换为你的pt_pin --env PT_KEY=替换为你的pt_key --name jdou dnboy985/jdou:v1.0

执行之后可在docker的Containers页面查看是否有名称为jdou的容器在运行

4.测试效果

上一步执行完成后,电脑上已经有定时任务在跑了,为了测试京豆脚本是否生效,可以测试一下效果

具体步骤是:

  • 浏览器上打开:http://localhost:8080/doc.html#/default/jd-service/getJDUsingGET,如页面无法打开,可文章底部留言反馈
  • 页面打开后,选到 调试 页面,在参数值里分别测试输入123后,再点击发送按钮,查看是否有信息返回,如有则项目运行成功!!!

最后给一下完整代码获取方式:关注公众号卷福同学,公众号内回复京豆

京豆薅羊毛新姿势-docker方式相关推荐

  1. 薅资本主义羊毛新姿势,英伟达GPU免费用

    作者 | 阿司匹林 出品 | 人工智能头条(公众号ID:AI_Thinker) 在到处都是开源工具和学习资料的今天,深度学习的门槛已经大大降低.然而,学习的门槛降低并不意味着学习的成本降低了,比如说动 ...

  2. 薅资本主义羊毛新姿势,英伟达K80免费用

    作者 | 阿司匹林 出品 | 人工智能头条(公众号ID:AI_Thinker) 在到处都是开源工具和学习资料的今天,深度学习的门槛已经大大降低.然而,学习的门槛降低并不意味着学习的成本降低了,比如说动 ...

  3. 不为人知的黑科技||双十一薅羊毛正确姿势

    目录 某宝篇 店铺签到 双11合伙人自动签到店铺脚本! 拍立淘 分享好友互助 逛店铺.逛会场.去浏览. 食用方法 其他方法总结 **``双十一活动群``** **``某猫榜单``** **``绿色包裹 ...

  4. 02.青龙面板——薅京东羊毛,自动获取京豆、自动浇水、做任务

    青龙面板--薅京东羊毛,自动获取京豆.自动浇水.做任务 步骤1:添加脚本仓库订阅 登录青龙面板的管理界面. 在左侧菜单中选择 订阅管理,然后点击 新建添加 按钮. 在弹出的对话框中输入新建订阅的名称. ...

  5. AI:人工智能领域有影响力的开源社区/科技巨头研究机构/全球顶尖学府实验室的简介、课程学习(正确姿势薅羊毛)之详细攻略

    AI:人工智能领域有影响力的开源社区/科技巨头研究机构/全球顶尖学府实验室的简介.课程学习(正确姿势薅羊毛)之详细攻略 目录 全球顶尖学府的人工智能实验室 国外篇 CSAIL(MIT计算科学与人工智能 ...

  6. docker安装青龙面板薅羊毛(新手教程,大佬可略过)

    当然如果没有服务器的,强烈推荐腾讯云,1核2G的服务器,一年原价1000多块的服务器,现在有活动新用户一年也就70元,也就一顿外卖钱.完全白嫖啊.本博客用的就是腾讯云 1核2G的轻量服务器,速度怎么样 ...

  7. 群晖NAS教程(十九)、利用Docker安装青龙面板(京东薅羊毛)

    为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客 群晖NAS教程(十九).利用Docker安装青龙面板(京东薅羊毛) 一.安装qinglong容器 在群晖docker套件中,搜索qinglong, ...

  8. 你真的懂优惠券吗?聊聊京东因为它,被薅羊毛7000万背后的玄机

    欢迎关注点击上面蓝字"码农wu师"关注我,专注IT技能分享! 如今各大电商平台竞争激烈,大到商家入驻小到品类扩展,处处暗藏玄机.但无论怎么设置平台规则和玩儿法,优惠券一直是平台和商 ...

  9. 来来来,教你如何智慧薅羊毛!

    提到边缘计算,熟悉ToB技术的朋友,首先可能想到的就是运营商的5G MEC(移动边缘计算),以及云计算中的融合边缘系统理念. 的确,作为全球公认的创新技术趋势,边缘计算如今已经被广泛用于云计算.5G. ...

  10. 薅羊毛利器—Loon,Cookie放在本地一点也不担心

    Loon Loon是一款在iOS系统下的代理工具(目前还没有Android版本),它支持在本地执行js脚本,只需简单配置即可成为薅羊毛利器 ps 之前的羊毛脚本已经失效了 下载 可以去美区AppSto ...

最新文章

  1. mysql操作命令梳理(3)-pager
  2. protected访问权限_权限修饰符 /重写
  3. 线性代数拾遗(一):线性方程组、向量方程和矩阵方程
  4. 属性的表示方法和对象的枚举
  5. Java快速入门学习笔记3 | Java语言中的表达式与操作符
  6. 读懂 x86 架构 CPU 虚拟化,看这文就够了 | 赠书
  7. java的类型_java数据类型
  8. 渗透测试-弱点扫描工具
  9. 一种基于FBO实现渲染流水线的思路
  10. 技术总监做技术经理的工作,技术经理做研发的工作是怎么回事?
  11. (原创)修改BIOS让华硕Z87-A老主板支持NVMe硬盘启动(采坑实录)
  12. linux上创建loopback接口,在python中的特定接口的linux loopback接口
  13. linux服务器下如何显示中文的图片,Linux服务器中文显示问题
  14. 如何快速统计Excel单元格中有几个数字
  15. 极限和连续+偏导+方向导数+可微+梯度+链式法则+hessian矩阵
  16. JAVA组合框怎么添加加减乘除,[C#]组合框设计windows加减乘除简单计算器应用
  17. 数据分析-数据规范化的一些方法
  18. 提示Microsoft office word 遇到问题需要关闭。还问是否发送错误报告。
  19. 港科夜闻|香港科技大学举办北京冬奥精神云分享会,借鉴成功经验延续奥运精神...
  20. Google面试题(java)—有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD

热门文章

  1. 用百度脑图做思维导图
  2. 台式电脑接路由器步骤_无线路由器连接台式电脑的方法
  3. 高仿富途牛牛-组件化(六)-炒鸡牛逼的布局记忆功能(序列化和反序列化)
  4. 网易云信 NIM_duilib 源码分析
  5. 历届奥斯卡最佳影片及下载地址
  6. 王垠:完全用Linux工作
  7. Facebook Libra币开发指南---Move语言开发代币智能合约
  8. Auto.js:实现蚂蚁森林自动收能量(懒人的高效生活)
  9. Mac上有哪些软件可以代替Office或Word的软件?
  10. wav文件隐写:Deepsound+TIFF图片PS处理( AntCTF x D^3CTF 2022 misc BadW3ter)