如何使用 Docker 安装 Jenkins

操作系统:Centos 7.5

Docker Version:18.09.6

下载 Jenkins 镜像

打开终端,输入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。

然后,使用docker pull命令拉取官方最新版本镜像:

$ docker pull jenkins Using default tag: latest latest: Pulling from library/jenkins Digest: sha256:eeb4850eb65f2d92500e421b430ed1ec58a7ac909e91f518926e02473904f668 Status: Image is up to date for jenkins:latest

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

$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE jenkins latest cd14cecfdb3a 1 months ago 696MB ... 运行 Jenkins 容器

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

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

docker run --name myjenkins -d -p 8080:8080 -p 50000:50000 jenkins

方式二:先在宿主机创建一个数据卷jenkins_data, 然后容器映射该卷以持久化数据。

docker volume create --name jenkins_data docker run --name myjenkins -d -v jenkins_data:/var/jenkins_home -p 8080:8080 -p 50000:50000 jenkins

方式三:将容器内产生的数据映射到宿主机指定的/your/ home目录中。这种方式本质与方式二是一样的,不过这里 Docker 创建的是一个匿名数据卷。

docker run --name myjenkins -d -v /your/home:/var/jenkins_home -p 8080:8080 -p 50000:50000 jenkins

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

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

$ docker volume create --name jenkins_data jenkins_data_v2 $ docker run --name myjenkins -d -v jenkins_data:/var/jenkins_home -p 8080:8080 -p 50000:50000 jenkins 93f88d6ca2129fae971298e98e20091570f6903463b203a9235660856f63020e

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

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 93f88d6ca212 jenkins "/bin/tini -- /usr/l…" 4 minutes ago Up 4 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp myjenkins 配置 Jenkins

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

如何使用 Docker 安装 Jenkins

Jenkins 把初始密码放到了/var/jenkins_home/secrets/initialAdminPassword 文件中。

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

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

如上输出中,a6f6d08fcc474178833001d1fc79be62 便是我们需要的初始密码,复制并粘贴到 Web 界面即可解锁应用。

不进容器能不能查看密码?答案是,可以。

找到容器存放数据目录jenkins_home映射的数据卷jenkins_data的宿主机物理目录,自然也就找到了initialAdminPassword文件。具体操作如下:

$ docker volume inspect jenkins_data [ { "CreatedAt": "2019-07-10T12:14:00+08:00", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/jenkins_data/_data", "Name": "jenkins_data", "Options": {}, "Scope": "local" } ] $ cd /var/lib/docker/volumes/jenkins_data/_data $ ls -l total 88 -rw-r--r-- 1 1000 1000 1592 May 15 14:36 config.xml -rw-r--r-- 1 1000 1000 102 May 15 14:36 copy_reference_file.log -rw-r--r-- 1 1000 1000 159 May 15 14:36 hudson.model.UpdateCenter.xml -rw------- 1 1000 1000 1712 May 15 14:36 identity.key.enc drwxr-xr-x 2 1000 1000 4096 May 15 14:36 init.groovy.d -rw-r--r-- 1 1000 1000 94 May 15 14:36 jenkins.CLI.xml -rw-r--r-- 1 1000 1000 4621 Jul 10 12:15 jenkins.install.InstallUtil.installingPlugins -rw-r--r-- 1 1000 1000 6 May 15 14:36 jenkins.install.UpgradeWizard.state drwxr-xr-x 2 1000 1000 4096 May 15 14:36 jobs drwxr-xr-x 3 1000 1000 4096 May 15 14:36 logs -rw-r--r-- 1 1000 1000 907 May 15 14:36 nodeMonitors.xml drwxr-xr-x 2 1000 1000 4096 May 15 14:36 nodes drwxr-xr-x 72 1000 1000 12288 Jul 10 12:15 plugins -rw-r--r-- 1 1000 1000 64 May 15 14:36 secret.key -rw-r--r-- 1 1000 1000 0 May 15 14:36 secret.key.not-so-secret drwx------ 4 1000 1000 4096 Jun 26 14:36 secrets drwxr-xr-x 2 1000 1000 4096 Jul 9 14:36 updates drwxr-xr-x 2 1000 1000 4096 May 15 14:36 userContent drwxr-xr-x 3 1000 1000 4096 May 15 14:36 users drwxr-xr-x 10 1000 1000 4096 May 15 14:36 war $ cat secrets/initialAdminPassword a6f6d08fcc474178833001d1fc79be62

拿到密码后,接着就进入了 Jenkins 插件安装界面:

如何使用 Docker 安装 Jenkins

这里我们选择Install suggested plugins,安装官方建议的插件,Jenkins 社区认为最有用的插件。

满心欢喜地等待插件安装完成中...

结果却是:

如何使用 Docker 安装 Jenkins

先不管了,后续使用到相关插件也可自行安装。

接着继续下一步操作,提示需要创建一个新的用户:

如何使用 Docker 安装 Jenkins

用户创建完成后,Jenkins 初始配置过程也就完成了。从此,正式开启你的 持续集成&持续部署 之旅吧!

如何使用 Docker 安装 Jenkins

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyfdd.html