Docker安装jenkins

kimpan
发布于 2024-05-17 / 61 阅读
3

Docker安装jenkins

下载jenkins

使用以下命令,拉去镜像

docker pull jenkins/jenkins:2.452.1-lts-jdk17

创建挂载目录

创建一个挂载目录,用于存放jenkins的数据

//创建目录
mkdir -p /mydata/jenkins

//授权权限
chmod 777 jenkins

启动Jenkins容器

docker run -d -p 8082:8080 -p 50000:50000 -v /mydata/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock --restart=on-failure -u 0 --name myjenkins jenkins/jenkins:2.452.1-lts-jdk17

指令解析:

-d :后台运行容器

-p:端口映射, 左边是本地端口,右边是docker容器端口 ,8080是Jenkins Web 界面的工作端口,50000是JNLP(Java Network Launch Protocol)工作端口。这个端口用于 Jenkins 节点和主控节点之间的通信。

-v :目录挂载,将主机上的/mydata/jenkins 目录挂载到容器内的 /var/jenkins_home 目录,用于持久化 Jenkins 的数据。/etc/localtime:/etc/localtime:将本地主机上的时区信息文件挂载到容器内的 /etc/localtime 文件中,确保容器内的时间与主机上的时间一致

-v /usr/bin/docker:/usr/bin/docker: 将主机上的 /usr/bin/docker 文件挂载到容器中的 /usr/bin/docker,这样容器内的 Jenkins 可以直接使用宿主机上的 Docker 命令。在使用 GitLab/Jenkins 等 CI 软件的时候需要使用 Docker 命令来构建镜像,需要在容器中使用 Docker 命令;通过将宿主机的 Docker 共享给容器

-v /var/run/docker.sock:/var/run/docker.sock: 将主机上的 Docker socket 文件挂载到容器中的相同位置,这样容器内的 Jenkins 可以与宿主机上的 Docker 引擎进行通信。

–restart=on-failure:设置容器的重启策略为在容器以非零状态退出(异常退出)时重启。

-u 0:将容器内进程的用户身份设置为 root 用户,等同于-u root。

–name myjenkins:给容器指定一个名称为 myjenkins。

验证Jenkins容器是否启动成功

使用下面命令,查看jenkins是否已经在运行

docker ps 

如果已经运行,会输出jenkins容器的相关信息

CONTAINER ID   IMAGE                         COMMAND                   CREATED      STATUS        PORTS                                                                                      NAMES
2949e82cbfe8   jenkins/jenkins:2.426.2-lts   "/usr/bin/tini -- /u…"   6 days ago   Up 24 hours   0.0.0.0:50000->50000/tcp, :::50000->50000/tcp, 0.0.0.0:8082->8080/tcp, :::8082->8080/tcp   myjenkins

获取管理员密码

进入Jenkins的管理页面的时候,是需要管理员密码,所以需要获取管理员密码

获取管理员密码有两种方式

查看日志

使用下面命令查看jenkins的输出日志,myjenkins是在启动jenkins时给jenkins指定的容器名

docker logs myjenkins

查看文件

可以直接查看/mydata/jenkins/secrets/initialAdminPassword文件

修改插件源

jenkins在安装插件时,下载相关插件包特别慢,可以将Jenkins默认的插件数据源变更为国内数据源,然后重启Jenkins

#进入更新配置目录
cd {你的Jenkins工作目录}/updates

使用下面命令替换default.json文件中指定的源

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

修改下载地址

cd {你的Jenkins工作目录}/

找到下面这个文件hudson.model.UpdateCenter.xml文件

 <?xml version='1.1’encoding='UTF-8'?>
    <sites>
        <site>
            <id>default</id>
            <url>https://updates.jenkins.io/update-center.json</url>
        </site>
    </sites>

将url替换为http://mirror.esuni.jp/jenkins/updates/update-center.json

    <?xml version='1.1encoding='UTF-8'?>
    <sites>
        <site>
            <id>default</id>
            <urI>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>
        </site>
    </sites>

登录web页面

使用ip:8082,8082就是我们主机映射到容器8080的端口,如果你使用的是其他端口,那么需要换成其他端口

微信图片_20240517164950.png

输入密码之后,就可以安装插件,直接选择安装推荐的插件即可

微信截图_20240517170740.png

下载完成,就可以进入jenkins进行操作了

插件推荐

  • Locale(中文插件)

  • Gitlab Plugin (拉取 gitlab 中的源代码)

  • Maven Integration(maven构建工具)

  • Publish Over SSH(远程推送工具)

  • Role-based Authorization Strategy(权限管理)

  • Deploy to container(自动化部署工程所需要插件,部署到容器插件)

  • git parameter(用户参数化构建过程里添加git类型参数)