在Docker容器中下载并运行Jenkins

Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。

Docker Jenkins
发布于 2019-04-17 阅读 719

Jenkins官网:https://jenkins.io/

查看Jenkins镜像

使用docker search [镜像名称]查看不同版本的镜像

$ docker search jenkins

Jenkins官网建议使用的Docker映像是jenkins/jenkins image(来自 the Docker Hub repository)。 该镜像包含当前的长期支持 (LTS) 的Jenkins版本 (可以投入使用) ,捆绑了所有Blue Ocean插件和功能。这意味着你不需要单独安装Blue Ocean插件。但是本教程安装的是jenkins/jenkins镜像,可以根据个人选择,本教程不做推荐。

拉取镜像

docker pull jenkins/jenkins

运行镜像

下载 jenkins/jenkins 镜像并使用以下docker run 命令将其作为Docker中的容器运行

运行命令

docker run \
  -u root \
  --rm \  
  -d \ 
  -p 8080:8080 \
  -p 5000:5000 \
  -v /home/jenkins:/var/jenkins_home \ 
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkins/jenkins 

参数说明

  • -u:(可选)指定容器的用户
  • --rm:(可选) jenkins/jenkins 关闭时自动删除Docker容器(下图为实例)。如果您需要退出Jenkins,这可以保持整洁。
  • -d:(可选)jenkins/jenkins 在后台运行容器(即“分离”模式)并输出容器ID。如果您不指定此选项, 则在终端窗口中输出正在运行的此容器的Docker日志。
  • -p 8080:8080: 映射(例如“发布”)jenkins/jenkins 容器的端口8080到主机上的端口8080。 第一个数字代表主机上的端口,而最后一个代表容器的端口。因此,如果您为此选项指定 -p 49000:8080 ,您将通过端口49000访问主机上的Jenkins。
  • -p 5000:5000:(可选)将 jenkins/jenkins 容器的端口50000 映射到主机上的端口50000。 如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkins/jenkins 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。 您可以通过“ 配置全局安全性” 页面更改Jenkins主服务器上的端口号。如果您要将您的Jenkins主机的JNLP代理端口的TCP端口 值更改为51000(例如),那么您需要重新运行Jenkins(通过此 docker run …命令)并指定此“发布”选项 -p 52000:51000,其中最后一个值与Jenkins master上的这个更改值相匹配,第一个值是Jenkins主机的主机上的端口号, 通过它,基于JNLP的Jenkins代理与Jenkins主机进行通信 - 例如52000。
  • -v /home/jenkins:/var/jenkins_home:(可选,但强烈建议)映射在容器中的/var/jenkins_home 目录到具有名字 jenkins-datavolume。 如果这个卷不存在,那么这个 docker run 命令会自动为你创建卷。 如果您希望每次重新启动Jenkins(通过此 docker run ... 命令)时保持Jenkins状态,则此选项是必需的 。 如果你没有指定这个选项,那么在每次重新启动后,Jenkins将有效地重置为新的实例。 注意: 所述的 jenkins-data 卷也可以 docker volume create命令创建: docker volume create jenkins-data 代替映射 /var/jenkins_home 目录转换为Docker卷,还 可以将此目录映射到计算机本地文件系统上的目录。 例如,指定该选项 -v $HOME/jenkins:/var/jenkins_home 会将容器的 /var/jenkins_home 目录映射 到 本地计算机上目录中的 jenkins 子目录, 该$HOME目录通常是 /Users//jenkins/home/<your-username>/jenkins
  • -v /var/run/docker.sock:/var/run/docker.sock:(可选 /var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字。 该映射允许 jenkins/jenkins 容器与Docker守护进程通信, 如果 jenkins/jenkins 容器需要实例化其他Docker容器,则该守护进程是必需的。 如果运行声明式管道,其语法包含agent部分用 docker例如, agent { docker { ... } } 此选项是必需的。 在Pipeline Syntax 页面上阅读更多关于这个的信息 。
  • jenkins/jenkins:jenkins/jenkins Docker镜像本身。如果此镜像尚未下载,则此 docker run 命令 将自动为您下载镜像。此外,如果自上次运行此命令后发布了此镜像的任何更新, 则再次运行此命令将自动为您下载这些已发布的镜像更新。 注意:这个Docker镜像也可以使用以下 docker pull命令独立下载(或更新) : docker pull jenkins/jenkins 注意: 如果复制并粘贴上面的命令片段不起作用,请尝试在此处复制并粘贴此无注释版本:docker run \

    简单运行

    docker run -u root --name my-jenkins -p 8080:8080 -v /home/jenkins:/var/jenkins_home -d jenkins/jenkins

安装后设置向导

下载安装并运行Jenkins后,即将开始进入安装向导。 此安装向导会引导您完成几个快速“一次性”步骤来解锁Jenkins, 使用插件对其进行自定义,并创建第一个可以继续访问Jenkins的管理员用户。

解锁 Jenkins

当您第一次访问新的Jenkins实例时,系统会要求您使用自动生成的密码对其进行解锁。

  1. 浏览到 http://localhost:8080(或安装时为Jenkins配置的任何端口),并等待 解锁 Jenkins 页面出现。
  2. 从Jenkins控制台日志输出中,复制自动生成的字母数字密码(在两组星号之间)。
  3. 解锁Jenkins 页面上,将此 密码 粘贴到管理员密码字段中,然后单击 继续

Notes: 如果您以分离模式在Docker中运行Jenkins,则可以从Docker日志(above) 访问Jenkins控制台日志。 Jenkins控制台日志显示可以获取密码的位置(在Jenkins主目录中)。 必须在新Jenkins安装中的安装向导中输入此密码才能访问Jenkins的主UI。 如果您在设置向导中跳过了后续的用户创建步骤, 则此密码还可用作默认admininstrator帐户的密码(使用用户名“admin”)

自定义jenkins插件

解锁 Jenkins之后,在 Customize Jenkins 页面内, 您可以安装任何数量的有用插件作为您初始步骤的一部分。

两个选项可以设置:

  • 安装建议的插件 - 安装推荐的一组插件,这些插件基于最常见的用例.
  • 选择要安装的插件 - 选择安装的插件集。当你第一次访问插件选择页面时,默认选择建议的插件。

如果您不确定需要哪些插件,请选择 安装建议的插件 。 您可以通过Jenkins中的Manage Jenkins > Manage Plugins 页面在稍后的时间点安装(或删除)其他Jenkins插件。

设置向导显示正在配置的Jenkins的进程以及您正在安装的所选Jenkins插件集。这个过程可能需要几分钟的时间

创建管理员用户

最后,在customizing Jenkins with plugins之后,Jenkins要求您创建第一个管理员用户。 . 出现“ 创建第一个管理员用户 ”页面时, 请在各个字段中指定管理员用户的详细信息,然后单击 保存完成 。当 Jenkins准备好了 出现时,单击开始使用 Jenkins

Notes: 这个页面可能显示 Jenkins几乎准备好了! 相反,如果是这样,请单击 重启 。 * 如果该页面在一分钟后不会自动刷新,请使用Web浏览器手动刷新页面。如果需要,请使用您刚刚创建的用户的凭据登录到Jenkins,并准备好开始使用Jenkins!

从这时起,Jenkins用户界面只能通过提供有效的用户名和密码凭证来访问。

  • 本文类型: 原创
  • 本文出处:
  • 版权说明: 本站内容均采用©BY-NC-SA许可协议,版权归作者和本站所有!欢迎转载,但未经作者同意必须在文章页面注明原文出处,否则保留追究法律责任的权利。

坤尘记

I AM KUNCHEN!思绪如风,总会在某处停留;用轻灵的文字书写关于技术生活的奇思妙想。

浙ICP备2020045526号