分享好友 最新动态首页 最新动态分类 切换频道
docker 学习及jenkins安装在docker上 及allure插件的安装
2024-12-27 02:36

前言:如果你想使用Jenkins调用同一台服务器上的代码,那么使用docker安装jenkins不是一个好的方法,容器的隔离使得Jenkins内部缺少非常多的库包,非常难以运行程序,运行镜像之类的还蛮适合的。

##.什么是docker
Docker是基于Go语言实现的云开源项目。
Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。

Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用运行在 Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。

而 Linux 容器是 Linux 发展出了另一种虚拟化技术,简单来讲, Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离,相当于是在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。

Docker可以让一个应用在任何操作系统中非常方便的运行。而以前我们接触的虚拟机,也能在一个操作系统中,运行另外一个操作系统,保护系统中的任何应用。

两者有什么差异呢

虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行 Ubuntu 系统,这样就可以运行任意的Ubuntu应用了。

Docker仅仅是封装函数库,并没有模拟完整的操作系统,如图

小结

Docker和虚拟机的差异

docker是一个系统进程;虚拟机是在操作系统中的操作系统
docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般

Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包
Docker运行到不同操作系统时,直接基于打包的函数库,借助于操作系统的Linux内核来运行

我们用的传统虚拟机如 VMware , VisualBox 之类的需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。

2.1 下载及配置

  • 下载命令

    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

  • 创建/etc/docker/daemon.json文件

     
  • 写入配置镜像加速

 
  • 免去sudo

     

2.2 启动服务及运行hello-world

  • 启动docker服务

     
  • 运行hello-world

      
    
     
     
    
    • 创建数据卷 一般在下
     
    
    • 查看数据卷
     
    
    • 删除数据卷
     
    

    3.4 容器

    • 查看运行过的容器(包括已经暂停的
     
    
    • 查看正在运行的容器
     
    

    3.5 删除镜像步骤

    3.5.1
    • 查看运行过的容器
     
    
    • 停止该容器运行
     
    
    • 移除该容器
     
    
    • 查看docker镜像
     
    
    • 删除该镜像
     
    
    3.6查看镜像内容器目录
    • 其中 <image_name> 是Docker镜像的名称或ID,<directory_path> 是您想要查看的目录路径。此命令将创建一个新的容器,列出指定目录中的所有文件和子目录,并在完成后立即删除该容器
     
    
     
     
    
    • -v与–mount的区别

       
    3.7进入容器内部
    • 需要容器在运行中 一般使用/bin/bash功能全一点
     
    
     
     
    

    4.1.搜索 Jenkins 镜像

     
     
     
    

    4.2.拉取镜像

     
     
    

    4.3.创建 Jenkins 挂载目录并赋予权限

     
    

    4.4.创建并启动 Jenkins 容器

     
    
    • -d:后台运行容器
    • -p 9001:8080:将容器的 8080 端口映射到服务器的 9001端口
    • -p 50000:50000:将容器的 50000 端口映射到服务器的 50000 端口 好像与jenkins相关
    • -v /usr/local/jenkins:/var/jenkins_home:将容器中 Jenkins 的工作目录挂载到服务器的 /usr/local/jenkins
    • -v /etc/localtime:/etc/localtime:让容器使用和服务器同样的时间设置
    • –restart=always:设置容器的重启策略为 Docker 重启时自动重启
    • –name=jenkins:给容器起别名
    • jenkins/jenkins:镜像名称
     
     
    

    重新启动jenkins

     
    

    查看启动日志

     
    

    4.5 jenkins国内镜像加速

     
     
    
     
     
    
    • 选择第一个安装jenkins插件

    1.点击【Manage Jenkins】->【Manage Plugins】选项。

    2.点击【可选插件】选项,右侧输入【Locale】选项。

    3.勾选【插件选项】,点击【直接安装】选项。

    4.重启Jenkins:在URL后加上【/restart】,点击【回车】,点击【是】即可。

    二、设置为中文

    1.点击【Manage Jenkins】->【Configure System】选项。

    2.找到【Locale】选项,输入【zh_CN】,勾选下面的选项,最后点击【保存】和【应用】即可
    详细操作

    4.8 重启Jenkins

    在浏览器地址最后加上即可

    4.9 能在jenkins镜像里使用docker命令

    • 可以看见目前容器是不可以使用docker命令的
      若想使用jenkins运行其它的镜像 如运行自动化测试时则需要能使用docker命令
      目的是在此镜像内操作其它容器

       
    • 停止某个镜像

       

    docker是通过 docker client 调用docker socket向docker server 发出请求

    • 找到docker client
     
    
     
     
    
    • 找到docker socket(一般都是都在这个目录下

       
     
    

    -v /usr/bin/docker:/usr/bin/docker # 文件挂载 使用同一个客户端
    -v /var/run/docker.sock://var/run/docker.sock # 文件挂载 使用同一个socket
    -u root 给予Jenkins root的权限

     
     
     
    

    5.1下载并安装docker desktop

    • 验证是否安装成功docker
     
     
    

    5.2 为python脚本制作镜像

    5.2.1 Dockfile编写
    • 基础知识
      1.关键字 指令使用大写字母
      2.执行从上到下顺序执行
      3.# 表示注释
      4.每一个指令都会创建提交一个新的镜像层

    Dockerfile :构建文件,定义了一切的步骤,源代码
    Docker images:通过DockerFile构建生成的镜像,最终发布和运行的产品!
    Docker 容器︰容器就是镜像运行起来提供服务器

    • 镜像命令( 当前路径 为Dockfile的路径
     
     
    
    5.2.3 推送镜像到dockerhub
    • 使用dockerlogin登录
     
     
    
    • 推送到docker hub

    后面是镜像名称:标签
    这是你的仓库名称philyou/study_work 推送时会推到对应的仓库 注意是公有仓库还是私有仓库

     
     
     
    

    登录dockerhub

    • 使用dockerlogin登录(笔者拉取的是私人镜像)
     
     
    
     
     
     
    

    7.1 创建jenkins(也是宿主机)的挂载目录

    之前jenkins是通过 挂载到宿主机的 目录下的
    要为allure-report 创建挂载的宿主机目录 /usr/local/jenkins的allure-result

     
     
    

    构建触发器

    • 构建后命令 把容器里生成的json和text挂载到jenkins里的工作空间里
     
     
    

    7.2 jenkins安装allure插件

    • 1
     
     
    
     
    

    项目名为
    创建文件夹
    从这是脚本产生的数据结果复制都当前项目空间下的文件夹

    allure-reslts则为

     
     
     
    

    参考文献

    https://yeasy.gitbook.io/docker_practice/introduction/what
    https://blog.csdn.net/itcast_cn/article/details/124865268
    https://blog.csdn.net/weixin_45847167/article/details/121242285
    https://www.bilibili.com/video/BV1ce4y1S7hm
    https://blog.csdn.net/aiwangtingyun/article/details/123523669
    https://www.bilibili.com/video/BV1og4y1q7M4

    • /bin/bash和/bin/sh的区别

       
    • 停止一个容器后使用使用新命令重新启动该容器,该容器之前的数据会消失吗

     
    

    就是挂载后的数据不会消失

    • 如何向一个正在运行的容器挂载本地文件
      可以先stop、rm该容器
最新文章
WordPress functions.php,函数文件 文字详细教程
不知道WordPress的function.php文件是什么,或者你能用它做什么?简而言之,WordPress的function.php文件为你提供了一个向你的网站添加代码段的方法。你可以以各种有用的方式使用这些代码段,所以了解function.php文件的工作方式可以帮助你
排序算法:插入排序
插入排序的思想是假设前n个元素是有序的,那么就把第n+1个元素插入到前n个元素中的适当位置,直到第m个元素 假设我有个数组{3,1,4,2} 那么对于第一次遍历来说: 有序的就是 arr[0] 要插入的是arr[1] 经过比较后 第一
如何提高新站被百度收录的速度:深度分析与加速策略
新站被百度收录,是站点上线后需重点关注之事。然而,该收录时长并非固定,受多种因素影响。本篇文章将深度剖析影响这一时长的主要因素,并给出加快收录速度的策略。网站性质对收录时间的影响网站特性对百度收录时限影响显著。新设站点通常
新鲜早科技丨ChatGPT搜索功能上新;谷歌推出视频模型VEO 2;苏姿丰辟谣AMD与Intel可能合并的传言
21世纪经济报道新质生产力研究院综合报道 早上好,新的一天又开始了。在过去的24小时内,科技行业发生了哪些有意思的事情?来跟21tech一起看看吧。 【巨头风向标】 1、 ChatGPT搜索功能上新,新增实时搜索和高级语音功能。12月17日,OpenAI
深圳亚马逊中级运营岗位职责
一、您能收获什么?A.公司优势:1.【专注精品】公司为精品模式,注重产品的质量及产品生命周期,看重客户的用户体验;2.【产品成果】我们的产品在小类目中处于前列;3.【持续培训】我们提供内部培训机会,定期的前端运营打法培训交流沟通,
php实现动态口令认证(谷歌身份验证器)
PHP Google 身份验证器演示这并不是一个功能齐全的应用程序。 仅演示如何将 Google Authenticator 移动应用程序与您的网站一起用作 2 因素登录系统或一次性密码。 这个简单的 PHP 脚本演示了使用 PHP 实现 Google Authenticator。 要使用此
每日凌晨对注册建造师专业、数量进行自动比对!该省住建厅发文
点击上方蓝字 关注我们 了解更多精彩12月11日,河北省住建厅发布关于公开征求《关于建立资质常态预警和动态核查机制加强全省建筑业企业资质批后监管的通知(征求意见稿)》意见的公告。自动比对+预警!(一)常态比对依托河北省建筑市场监
首发解析:网站资源优化理论与实战全面指南
  在互联网时代,网站资源优化已经成为了一个不可忽视的重要环节。一个优化得当的网站不仅可以提高用户体验,还能有效提升搜索引擎排名,从而带来更多的流量和转化。本文将从理论到实践,全面解析网站资源优化的关键要素和具体步骤。  
我在东南亚卖潮玩,暴赚几千万
涌现的财富吸引着越来越多的掘金玩家,主做玩具婴童展的小肖印象很深刻,越来越多的潮玩企业开始出海。饭后,阿黎随手给了妈妈一张存款几十万的银行卡,“你拿着花,从今天开始钱能解决的问题,不是问题了”。在讲述时,85后阿黎依然难掩当
——优化SEO,提升网站排名与流量
版权声明:图片来源网络,仅做分享之用!侵权请联系删除。我们需要了解SEO的基本概念和原理,SEO(Search Engine Optimization)是指通过一系列策略和技巧,使网站在搜索引擎中获得更好的排名,从而吸引更多的流量,这些策略包括关键词选择
相关文章
推荐文章
发表评论
0评