在Docker容器中下载并运行Jenkins
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。
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-data
的volume。 如果这个卷不存在,那么这个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实例时,系统会要求您使用自动生成的密码对其进行解锁。
- 浏览到
http://localhost:8080
(或安装时为Jenkins配置的任何端口),并等待 解锁 Jenkins 页面出现。 - 从Jenkins控制台日志输出中,复制自动生成的字母数字密码(在两组星号之间)。
- 在 解锁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许可协议,版权归作者和本站所有!欢迎转载,但未经作者同意必须在文章页面注明原文出处,否则保留追究法律责任的权利。