首页 > 其他分享 >使用 Docker 安装 Jenkins 的最佳方式

使用 Docker 安装 Jenkins 的最佳方式

时间:2024-03-05 10:24:48浏览次数:25  
标签:最佳 jenkinsci jenkins blueocean Jenkins Docker docker

说在前面

本篇内容非常简单,讲述了如何快速在 Docker 上部署一个 Jenkins 实例,避免多采坑,浪费不必要的练习时间。

本文实验环境:

  • 操作系统:Centos 7.5
  • Docker Version:18.09.6

下载镜像

打开终端,输入docker search命令搜索 Docker Hub 上可用的 Jenkins 镜像:

$ docker search jenkins
NAME                                         DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
jenkins                                      Official Jenkins Docker image                   4328                [OK]
jenkins/jenkins                              The leading open source automation server       1563
jenkinsci/blueocean                          https://jenkins.io/projects/blueocean           399
jenkinsci/jenkins                            Jenkins Continuous Integration and Delivery …   367
jenkinsci/jnlp-slave                         A Jenkins slave using JNLP to establish conn…   110                                     [OK]
jenkins/jnlp-slave                           a Jenkins agent (FKA "slave") using JNLP to …   86                                      [OK]
...

根据镜像OFFICIAL标签判断,位列第一、名字为jenkins的是 Jenkins 官方提供的镜像。我们是不是应该使用这个官方镜像呢?

如果你看过 Jenkins 文档中 Docker 安装 小节,会发现官方推荐使用的镜像是jenkinsci/blueocean,该镜像包含当前的长期支持 (LTS) 的 Jenkins 版本 (可以生产使用) ,并捆绑了所有 Blue Ocean 插件和功能。

博主第一次安装的时候使用的是jenkins镜像,其集成的 Jenkins 版本比较高,结果出现好多插件不兼容的情况,对于我等小白来说是一件比较麻烦的事。

这里我们果断使用jenkinsci/blueocean镜像,使用docker pull命令拉取:

$ docker pull jenkinsci/blueocean
Using default tag: latest
latest: Pulling from jenkinsci/blueocean
Digest: sha256:523769431f19830cfda7ceae37c59c9f01affb551836933aa30114dcaa5df9eb
Status: Image is up to date for jenkinsci/blueocean:latest

在本地镜像仓库确认是否已存在:

$ docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
jenkinsci/blueocean   latest              ef2dc74fe285        21 hours ago        552MB
mysql                 latest              990386cbd5c0        2 months ago        443MB
jenkins               latest              cd14cecfdb3a        11 months ago       696MB
...

运行容器#

现在,就可以基于下载的镜像运行 Jenkins 容器了,有以下两种运行方式供你参考:

方式一:直接运行,运行期间产生的所有数据都保存在容器内部,容器销毁,数据丢失。

docker run \
    --name jenkins-blueocean \
    -d \
    -p 8081:8080 \
    -p 50001:50000 \
    jenkinsci/blueocean

方式二:Docker 会在宿主机上创建一个数据卷jenkins-data,容器映射该卷以持久化数据。

docker run \
  --name jenkins-blueocean \
  -d \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins-data:/var/jenkins_home \
  jenkinsci/blueocean

Tips:8080 端口用来公开访问 Web 界面,50000 端口允许访问远程 Java (JIRA) API。

这里我使用了第二种方式启动了 一个 Jenkins 容器应用:

$ docker run \
  --name jenkins-blueocean \
  -d \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins-data:/var/jenkins_home \
  jenkinsci/blueocean
93f88d6ca2129fae971298e98e20091570f6903463b203a9235660856f63020e

最后使用docker ps命令确认容器是否已经后台运行:

$ docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                              NAMES
0cad9bbe76a6        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   About an hour ago   Up About an hour    0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   jenkins-blueocean

配置 Jenkins#

以上如果一切正常,现在就可以通过http://<ipaddress>:8080访问 Jenkins 的 Web 界面了。

Step1:解锁 Jenkins。

Alt Text

管理员初始密码被放到了/var/jenkins_home/secrets/initialAdminPassword 文件中。

因为我们把 Jenkins 部署在了 Docker 容器中,因此需要先进入到容器,再去查看对应的文件initialAdminPassword内容:

$ docker exec -it jenkins-blueocean /bin/bash
jenkins@93f88d6ca212:/$ cat /var/jenkins_home/secrets/initialAdminPassword
a6f6d08fcc474178833001d1fc79be62

如上输出中,a6f6d08fcc474178833001d1fc79be62 便是我们需要的管理员密码,复制并粘贴到 Web 界面,点击继续即可解锁 Jenkins。

Step2:安装插件。

Jenkins 可以说完全由插件来驱动的,所以安装一些基础的插件是非要必要的,这里我们选择 安装推荐的插件 ,然后静静地等待插件安装完成即可。

Step3:创建用户。

接着继续下一步操作,提示需要创建一个新的用户,自行填写即可。

Step4:配置实例。

看看提示,没有问题就点 保存并完成 即可。

至此,Jenkins 初始化配置过程也就完成了。正式开启你的 CI&CD 之旅吧!

更换主题#

如果你不喜欢 Jenkins 官方默认页面样式,你可以尝试通过如下项目更换一套基于 Material Design 设计的主题。

https://github.com/afonsof/jenkins-material-theme

安装过程请参考其相关文档,此处不再详述。

相关资源#

本文转自 https://www.cnblogs.com/esofar/p/11163583.html,如有侵权,请联系删除。

标签:最佳,jenkinsci,jenkins,blueocean,Jenkins,Docker,docker
From: https://www.cnblogs.com/firsthelloworld/p/18053386

相关文章

  • 在Docker中,镜像内没有curl,kill,ipconfig等指令如何添加?
    在Docker中,如果镜像内没有curl、kill、ipconfig(在Linux中通常是ip命令)等指令,你可以通过修改Dockerfile来添加它们。下面我将详细解释如何添加这些指令:1.添加curl如果镜像基于Debian或Ubuntu等使用APT作为包管理器的系统,你可以在Dockerfile中使用apt-get来安装curl:FROMyour_ba......
  • 在Docker中,docker commit生成的镜像和dockerfile生成镜像有什么区别?
    在Docker中,dockercommit和基于Dockerfile构建镜像的过程和区别主要包括以下几个方面:1.dockercommit过程与特点:过程:启动一个容器,通常基于某个基础镜像。在容器内部执行各种操作,例如安装软件、修改配置文件等。使用dockercommit命令将容器的当前状态保存为新......
  • 在Docker中,本地的镜像文件都存放在哪里?
    在Docker中,镜像(Images)保存在本地文件系统中,具体的保存位置取决于您使用的操作系统。以下是一些常见操作系统的Docker镜像保存位置:Linux:默认情况下,Docker镜像保存在/var/lib/docker/目录下。当您使用dockerpull命令从DockerHub或私有镜像仓库中拉取镜像时,Docker会自动将镜......
  • 在Docker中,docker add copy有什么区别?
    在Docker中,ADD和COPY命令都用于将文件或目录从构建上下文复制到Docker镜像中,但它们之间存在一些重要的区别。源文件类型和处理方式:COPY命令仅支持从构建上下文中复制本地文件或目录到容器中。如果源路径是目录,它会递归复制该目录及其内容。如果源文件是归档文件(如.tar或.zip),它......
  • 在Docker中,docker run指令执行后,生成了哪些进程?
    当执行dockerrun指令后,Docker会启动一个新的容器实例。这个过程中会涉及多个进程和组件的交互。以下是dockerrun指令执行后生成的主要进程和组件:DockerDaemon(守护进程):DockerDaemon是Docker的后台服务,它长期运行并管理Docker容器、镜像、网络和卷等资源。当执......
  • docker swarm集群创建
    dockerswarm集群创建sudodockerswarminit--advertise-addr127.0.0.1控制台展示Swarminitialized:currentnode(kgjpg7onmysbxvkufdc2l25xy)isnowamanager.Toaddaworkertothisswarm,runthefollowingcommand:dockerswarmjoin--tokenSWMTKN-1......
  • Docker常见面试题
    1.什么是Docker?Go语言开发,容器虚拟化技术,C/S架构,具有隔离、快速、轻便的特点。2.Docker与虚拟机有何不同?相比于虚拟机,docker更快速、轻便。快速:秒级启动轻便:联合文件系统3.Docker镜像是什么?联合文件系统。可以通过DockerFile构建或通过容器Commit生成。4.Docker容器是......
  • 机器视觉-使用AMD的ROCm加速yolo前提-windows10 安装docker
    docker环境准备:docker官网下载dockerdesktop的windows版本,并安装.安装后,启动DockerDesktop应用程序完成剩余的安装任务.如果报unabletodetectaHypervisor错误,使用管理员权限执行下面批处理文件,会安装Hyper-V相关组件,并重启电脑,重启后启用或关闭Wi......
  • docker后端运行
    重点: 比如,redis就需要后台守护式启动:dockerrun-dredis有的就只能前台交互式启动,比如:dockerrun-itubuntu #使用鏡像centos:latest 以后台模式启动一·个容器docker run -d ubuntu: 然后 docker ps -a 行查看, 会发容器已经退出很重要的要說明的一点: ......
  • docker容器命令
      docker是基于linux内核的,必须需要linux系统才能运行起来。1.创建容器实例dockerrun[options]image[command][arg...] #启动交互式容器命令dockerrun-itubuntu/bin/bash  宿主机的端口:docker中的端口。 2.查看正在运行的容器dockerps【options】......