云原生之docker部署jenkins持续集成工具

简介: 云原生之docker部署jenkins持续集成工具

一、jenkins介绍

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。

二、jenkins功能

  • 一个自动构建过程,包括自动编译、分发、部署和测试等。
  • 一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。
  • 一个持续集成服务器。

    三、检查本地docker状态

[root@node ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2022-11-06 06:02:26 CST; 6min ago
     Docs: https://docs.docker.com
 Main PID: 9869 (dockerd)
    Tasks: 76
   Memory: 185.2M
   CGroup: /system.slice/docker.service
           ├─ 9869 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
           ├─20064 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3548 -container-ip 172.17.0.2 -container-port 3306
           ├─20074 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 3548 -container-ip 172.17.0.2 -container-port 3306
           ├─20107 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.17.0.3 -container-port 80
           ├─20113 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8080 -container-ip 172.17.0.3 -container-port 80
           ├─20489 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9010 -container-ip 172.17.0.4 -container-port 9000
           ├─20495 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 9010 -container-ip 172.17.0.4 -container-port 9000
           ├─20514 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8120 -container-ip 172.17.0.4 -container-port 80
           ├─20525 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8120 -container-ip 172.17.0.4 -container-port 80
           ├─20563 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 443 -container-ip 172.17.0.4 -container-port 443
           └─20574 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 443 -container-ip 172.17.0.4 -container-port 443

Nov 06 06:02:22 node dockerd[9869]: time="2022-11-06T06:02:22.858540089+08:00" level=info msg="Removing stale sandbox 1f9c7c1980061b426...89cfa96)"
Nov 06 06:02:22 node dockerd[9869]: time="2022-11-06T06:02:22.873645768+08:00" level=warning msg="Error (Unable to complete atomic oper...ying...."
Nov 06 06:02:22 node dockerd[9869]: time="2022-11-06T06:02:22.953940543+08:00" level=info msg="Removing stale sandbox 4a120cc4b61f298f2...ec3e139)"
Nov 06 06:02:22 node dockerd[9869]: time="2022-11-06T06:02:22.954941579+08:00" level=warning msg="Error (Unable to complete atomic oper...ying...."
Nov 06 06:02:22 node dockerd[9869]: time="2022-11-06T06:02:22.982064143+08:00" level=info msg="Default bridge (docker0) is assigned wit... address"
Nov 06 06:02:26 node dockerd[9869]: time="2022-11-06T06:02:26.676985427+08:00" level=info msg="Loading containers: done."
Nov 06 06:02:26 node dockerd[9869]: time="2022-11-06T06:02:26.706262799+08:00" level=info msg="Docker daemon" commit=a89b842 graphdrive...=20.10.17
Nov 06 06:02:26 node dockerd[9869]: time="2022-11-06T06:02:26.706381481+08:00" level=info msg="Daemon has completed initialization"
Nov 06 06:02:26 node systemd[1]: Started Docker Application Container Engine.
Nov 06 06:02:26 node dockerd[9869]: time="2022-11-06T06:02:26.742893105+08:00" level=info msg="API listen on /var/run/docker.sock"
Hint: Some lines were ellipsized, use -l to show in full.

四、下载jenkins镜像

[root@node ~]# docker pull jenkins/jenkins
Using default tag: latest
latest: Pulling from jenkins/jenkins
0e29546d541c: Already exists 
11bbb8c402a7: Pull complete 
cf91f018150b: Pull complete 
a98e88c6f0f0: Pull complete 
f67fc70d671a: Pull complete 
edbe48067464: Pull complete 
fa23ca93dd6b: Pull complete 
00159d993c13: Pull complete 
f28fb40a17cf: Pull complete 
071d309df04b: Pull complete 
78599f36e494: Pull complete 
896a32d969fb: Pull complete 
3f1a51ea9f7f: Pull complete 
26e724f0bfad: Pull complete 
b377e1ae1384: Pull complete 
d3cdbe7e8b9f: Pull complete 
f3b40ebc3458: Pull complete 
Digest: sha256:c3fa8e7f70d1e873ea6aa87040c557aa53e6707eb1d5ecace7f6884a87588ac8
Status: Downloaded newer image for jenkins/jenkins:latest
docker.io/jenkins/jenkins:latest

五、部署jenkins

1.创建数据目录

[root@node ~]# mkdir -p /data/jenkins/data
[root@node ~]# chmod -R 777 /data/jenkins/data/
[root@node ~]#

2.创建jenkins容器


[root@node jenkins]# docker run -d --name jenkins  --restart always -p 8774:8080  -p 50100:50000 -v  /data/jenkins/data/:/var/jenkins_home  -v /etc/localtime:/etc/localtime   jenkins/jenkins
b44ef8c88d09e5eebb996c91691101fb534859aa3185bdc8bf3c0a8ebf443cbf

3.查看jenkins容器状态

[root@node jenkins]# docker ps
CONTAINER ID   IMAGE                                                          COMMAND                  CREATED         STATUS          PORTS                                                                                                                     NAMES
b44ef8c88d09   jenkins/jenkins                                                "/sbin/tini -- /usr/…"   2 minutes ago   Up 2 minutes    0.0.0.0:8774->8080/tcp, :::8774->8080/tcp, 0.0.0.0:50100->50000/tcp, :::50100->50000/tcp                                  jenkins

六、配置jenkins镜像加速

[root@node data]# cat hudson.model.UpdateCenter.xml 
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>

七、访问jenkins

[root@node data]# cat secrets/initialAdminPassword 
9e501f00a41f472292367def3724d81b
[root@node data]#

image.png

八、jenkins初始化及安装插件

image.png
image.png

九、创建管理员账号

image.png

image.png

十、进入jenkins首页

image.png

相关文章
|
24天前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
68 5
|
4天前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
16 3
|
10天前
|
Kubernetes Cloud Native 开发者
探秘云原生计算:Kubernetes与Docker的协同进化
在这个快节奏的数字时代,云原生技术以其灵活性和可扩展性成为了开发者们的新宠。本文将带你深入了解Kubernetes和Docker如何共同塑造现代云计算的架构,以及它们如何帮助企业构建更加敏捷和高效的IT基础设施。
|
19天前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
17天前
|
安全 Cloud Native Shell
云上攻防:云原生篇&Docker容器逃逸
本文介绍了Docker的基本概念及其对渗透测试的影响,重点讲解了容器逃逸的方法。Docker是一种轻量级的容器技术,与虚拟机相比,具有更高的便携性和资源利用率。然而,这也带来了安全风险,特别是容器逃逸问题。文章详细描述了三种常见的容器逃逸方法:不安全的配置、相关程序漏洞和内核漏洞,并提供了具体的检测和利用方法。此外,还介绍了几种特定的漏洞(如CVE-2019-5736和CVE-2020-15257)及其复现步骤,帮助读者更好地理解和应对这些安全威胁。
云上攻防:云原生篇&Docker容器逃逸
|
22天前
|
Kubernetes Cloud Native Docker
云原生入门:Kubernetes和Docker的协同之旅
【10月更文挑战第4天】在这篇文章中,我们将通过一次虚拟的旅行来探索云原生技术的核心——Kubernetes和Docker。就像乘坐一艘由Docker驱动的小船启航,随着波浪(代码示例)起伏,最终抵达由Kubernetes指挥的宏伟舰队。这不仅是一段技术上的旅程,也是理解现代云架构如何支撑数字世界的冒险。让我们扬帆起航,一探究竟!
|
25天前
|
人工智能 自然语言处理 关系型数据库
阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成
近日,阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成。
|
26天前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
61 0
|
1月前
|
Kubernetes Cloud Native 持续交付
云原生之旅:Docker容器化与Kubernetes集群管理
【9月更文挑战第33天】在数字化转型的浪潮中,云原生技术如同一艘航船,带领企业乘风破浪。本篇文章将作为你的航海指南,从Docker容器化的基础讲起,直至Kubernetes集群的高级管理,我们将一起探索云原生的奥秘。你将学习到如何封装应用、实现环境隔离,以及如何在Kubernetes集群中部署、监控和扩展你的服务。让我们启航,驶向灵活、可伸缩的云原生未来。
|
1月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker与Kubernetes入门
【9月更文挑战第30天】在云计算的浪潮中,云原生技术正以前所未有的速度重塑着软件开发和运维领域。本文将通过深入浅出的方式,带你了解云原生的核心组件——Docker容器和Kubernetes集群,并探索它们如何助力现代应用的构建、部署和管理。从Docker的基本命令到Kubernetes的资源调度,我们将一起开启云原生技术的奇妙之旅。

热门文章

最新文章