如何在Docker容器中安装Jenkins

时间:2020-03-05 15:27:57  来源:igfitidea点击:

今天我们将学习如何使用Docker安装Jenkins。
Jenkins是一个屡获殊荣的应用程序,监控重复工作的执行,例如构建由Cron运行的软件项目或者作业。

它不断构建/测试软件项目。
简而言之,Jenkins提供了一种简单的持续集成系统,使开发人员更容易将更改集成到项目,并使用户更容易获得新的构建。
自动化,连续版本提高了生产率。
它有助于监视外部运行作业的执行,例如Cron作业和Procmail作业,即使是在远程计算机上运行的作业。
Jenkins保留了输出并让我们在出现错误时容易注意到。

Docker是一个开源项目,提供打开的平台,用于打包,运行任何应用程序作为轻量级容器。
它没有语言支持,框架或者包装系统的界限,可以随时随地运行,从小家用计算机到高端服务器。
它使它们成为部署和缩放Web应用程序,数据库和后端服务的很棒的构建块,而无需根据特定堆栈或者提供程序。

以下是我们如何在Docker容器中安装Jenkins CI的快速简便的步骤,以便它有助于我们使用Docker环境。

1.安装Docker.

首先,我们需要确保我们在主机操作系统中安装了Docker。
要安装,我们需要在shell或者终端中运行以下命令。

在Ubuntu.

Package Docker在Ubuntu的存储库中提供,因此,我们将使用APT Manager在sudo或者root模式下安装它。

# apt-get install docker

在CentOS 7

在CentOS 7计算机上,我们将使用Yum Manager安装Docker,因为它也可以在CentOS的存储库中提供。

# yum install docker

2.拉动Jenkins镜像

在我们的主机安装Docker后,我们现在将进一步安装Jenkins。
我们现在将从Zaiste提供的Docker注册中心提取Jenkins镜像。
在使用Pull命令之前将镜像拉动之前,我们需要保护我们的系统,因为标识了带有LIVE命令的恶意问题。
要保护我们的系统免受此问题,我们需要将127.0.0.1 index.docker.io添加到/etc/hosts条目中。
我们可以使用我们喜欢的文本编辑器。

# nano /etc/hosts

现在,将以下行添加到其中。

127.0.0.1 index.docker.io

现在,在我们受到恶意问题的保护之后,我们将开始Docker守护程序。
由于我们在本教程中运行了CentOS 7,我们将使用SystemCtl启动它。

# systemctl start docker

我们现在将使用以下命令将我们的Jenkins镜像拉。

docker pull registry.hub.docker.com/zaiste/jenkins.

现在,我们将用短名字标记我们的镜像名称到Jenkins-Image。

Docker Tag Registry.hub.docker.com/zaiste/jenkins jenkins-image

3.运行Jenkins容器

接下来,我们将使用此镜像运行Docker容器,并将数据目录从容器映射到主机。
其中我们将来自容器中的/var/lib/jenkins从主机上的当前路径映射到Jenkins /目录。
Jenkins端口8080也暴露于主机为49001.

# docker run -d -p 49001:8080 -v $PWD/jenkins:/var/lib/jenkins -t jenkins-image

4. Web界面

正如我们成功运行Jenkins Container,我们可以通过指向http://ip-address:49001或者http://localhost:49001,使用我们的Web浏览器浏览Jenkins Web界面。
我们还添加了关于如何使用更多详细信息设置Jenkin的其他文章。

安全问题

在默认配置中,Jenkins不执行任何安全检查,允许访问该站点的任何人都可以配置Jenkins和作业,并执行构建。
虽然在对软件的初始评估期间,这种配置是可以接受的,但是应该将Jenkins配置为在大多数其他情况下验证用户并强制访问控制,特别是在暴露于互联网时。

现在,我们将用于一些安全措施,我们将添加用户名和密码。
我们将去管理Jenkins>配置全局安全性,然后选择"启用安全性"复选框。
对于基本用户名/密码认证,我建议为安全领域选择"Jenkins自己的用户数据库",然后我们将选择"登录用户可以执行任何操作"。
现在,要添加新的用户名和密码,Goto管理Jenkins>管理用户>创建用户。
然后,我们将为我们的新用户添加详细信息。