当前位置: 首页 > 后端技术 > Java

京豆拉羊毛的新姿势——docker方法

时间:2023-04-02 01:06:20 Java

背景上周看麦麦的时候,看到了下面这个帖子。leader要求做项目容器化,但是host从来没有做过。他害怕新事物,所以他害怕,然后就把机会白白给了其他同事。我想我也是如此。刚来阿里工作的时候,一个很好的项目机会来了,领导让我去做。总觉得准备要花时间,准备好了才会等。然后等啊等啊,项目给别人做了,别人长大了,我却胆小了,停了下来。现在领导也时不时拿这事取笑我。..所以,我们的主要目的是学习和成长。本周,我们将根据脉脉的帖子内容,学习容器化并实践。Docker容器化一、什么是docker?做Java开发的同学应该都知道,Java代码需要在服务器端运行。首先打包成jar包,然后通过java-jarxxx.jar命令运行,将jar文件存放到虚拟机中。跑步。虚拟机是将一套硬件虚拟出来后,在上面运行一个完整的操作系统,比如阿里云ECS服务器。docker容器不需要虚拟硬件,而是直接在宿主机内核上运行容器中的进程,因此容器比传统的虚拟机更轻量。下图是传统虚拟化和Docker容器的对比:2.docker创建镜像并安装docker。你可以自己搜索。安装完成后,我们以京豆脚本的代码为例。这一步将精豆脚本的jar包构建为镜像,并在项目目录下创建一个Dockerfile文件,文件内容如下,注释中已经说明了每一行的作用#Usejdk8asthebaseimageFROMopenjdk:8#SpecifytheauthorMAINTAINERdnboy#Exposurecontainerport8080EXPOSE8080#指定的docker-demo-会被复制0.0.1-SNAPSHOT.jar是容器中的job.jar,相当于复制到容器中取别名ADD./target/application.jar/application.jar#相当于用cmd命令执行容器中的jar包规范外部配置文件ENTRYPOINT["java","-jar","/application.jar"]然后在命令行执行如下命令:dockerbuild-tjdou这一步将jdk和jar包都构建成一个docker镜像,镜像名称为jdou3。上传镜像上一步中的镜像可以在本地docker中运行。为了使镜像公开并可供所有人使用,需要将镜像上传到dockerhub。具体步骤为(1)给镜像打标签,执行命令行#修改标签,例子:dockertagae4ed59cdnboy985/jdou:1.0dockertagIMAGEID(mirrorID)repository:label#给镜像打标签,例子:dockertagdnboy985/jdou:1.0dnboy985/jdou:v1.0dockertag/:#如果不指定tag,默认是最新的(2)上传图片#登录dockerhub账号,如果没有账号,可以注册dockerlogin#pushtag,例子:dockerpushdnboy985/jdou:v1.0dockerpush/:上传完成后,可以在dockerhub官网上找到镜像,如图所示,我刚刚上传的图片的所有代码都已经提交到Github了。有兴趣了解更多的同学可以在公众号回复精豆查看源码。以下是脚本的运行步骤。docker安装步骤:Windows安装docker步骤docker官网下载地址:Windows下下载Docker按照上面的教程先在电脑上安装docker2。拉取镜像这一步是将京豆脚本镜像拉取到本地。步骤:Windows打开命令行方法为:按WIN+R键,在运行窗口输入cmd回车弹出,Mac直接打开终端在dockerpulldnboy985/jdou:v1.0中输入命令行窗口,等待10分钟左右下载完成后,博主这里使用的是Mac,下载完成后,打开docker,在images选项中找到刚刚下载的镜像,名称为:dnboy985/jdou3.运行镜像在命令行窗口运行镜像,需要先获取京东账号登录后的pt_pin和pt_key数据,获取方法见我之前的文章:【【奶奶懂的】教你使用脚本登录京东](https://blog.csdn.net/qq_3662...)然后命令在一行中回车:(注意下面pt_pin和pt_key需要替换)dockerrun-d-p8080:8080--envPT_PIN=替换成你的pt_pin--envPT_KEY=替换成你的pt_key--namejdoudnboy985/jdou:v1.0执行后可以查看是否有jdou容器在运行在docker的Containers页面4.测试效果上一步执行完成后,电脑上已经有定时任务在运行了。测试效果的具体步骤为:在浏览器上打开:http://localhost:8080/doc.html#/default/jd-service/getJDUsingGET,如果页面打不开,可以在底部留言打开反馈页面后进入文章,选择Debugging页面,测试在参数值中输入1、2、3,然后点击发送按钮,查看是否有信息返回。如果有,则项目运行成功!!!最后给个获取完整代码的方法:关注公众号juanfu的同学,请在公众号内回复京豆