首页 > 其他 > 详细

如何使用 Docker 安装 Jenkins

时间:2019-07-10 14:40:57      阅读:120      评论:0      收藏:0      [点我收藏+]

说在前面

本篇内容非常简单,仅讲述了如何快速在 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

然后,使用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
...

运行容器

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

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

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

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

技术分享图片

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 插件安装界面:

技术分享图片

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

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

结果却是:

技术分享图片

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

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

技术分享图片

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

技术分享图片

相关资源

如何使用 Docker 安装 Jenkins

原文:https://www.cnblogs.com/esofar/p/11163583.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!