1 介绍(知识点)

1.1 Jenkins介绍

Jenkins是一个开源软件项目,是基于Java开发的一种工具,可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。

  • 官网:https://jenkins.io/
  • 官方文档:https://jenkins.io/zh/doc/

Jenkins特点

  • 开源免费
  • 安装配置超级简单
  • 跨平台,支持所有的平台
  • web形式的可视化的管理页面
  • 分布式构建
  • 丰富的插件支持

1.2 Docker介绍

Docker 是一个开源的应用容器引擎,方便快速搭建环境、部署应用

  • 官网:https://www.docker.com/

jenkins和docker私有库 jenkins和docker区别_Jenkins

Docker应用场景

  • 应用的自动化打包和发布
  • 自动化测试和持续集成、发布。

2 安装及配置(知识点)

2.1 Docker安装及配置
  • Windows安装
  • CentOS安装

CentOS安装

Docker支持以下的CentOS版本:

  • CentOS 7 (64-bit)
  • CentOS 6.5 (64-bit) 或更高的版本

安装及配置步骤

  1. 查看内核版本uname -a,建议3.10以上
  2. yum更新yum update
  3. 安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 查询版本,并安装
yum list docker-ce --showduplicates | sort -r
  1. 安装Docker
yum install docker-ce-17.12.1.ce
  1. 验证安装是否成功
docker version
  1. 启动docker,并加入开机启动
systemctl start docker
systemctl enable docker

jenkins和docker私有库 jenkins和docker区别_Jenkins_02

2.2 Jenkins安装及配置

安装及配置步骤:

  1. 下载地址:https://jenkins.io/zh/download/
  2. 选择docker版本下载
  3. 或直接访问https://hub.docker.com/r/jenkins/jenkins

jenkins和docker私有库 jenkins和docker区别_Jenkins_03


4. Centos下安装

  • 切换root用户
su root
  • 执行命令
docker pull jenkins/jenkins:lts

jenkins和docker私有库 jenkins和docker区别_jenkins和docker私有库_04

  • 安装完成
![在这里插入图片描述]()
  • 查看下载完成的镜像

jenkins和docker私有库 jenkins和docker区别_docker_05

  • 启动Jenkins镜像
docker run -d -p 80:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins docker.io/jenkins/jenkins:lts
  • 启动参数意义
-d 后台运行镜像
-p 80:8080  将镜像的8080端口映射到服务器的80端口
-p 50000:50000  将镜像的50000端口映射到服务器的50000端口
-v jenkins:/var/jenkins_home  /var/jenkins_home目录为jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录。
-v /etc/localtime:/etc/localtime  让容器使用和服务器同样的时间设置。
--name jenkins 给容器起一个别名
  • 浏览http://localhost并等到Unlock Jenkins页面出现。
  • 注意,docker版的jenkins`,所以这个路径不是服务器的路径,而是容器内的路径。我们可以通过如下命令从容器中获取到初始化密码
docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
  • 继续使用后面步骤设置向导完成设置。
2.3 Docker简单使用
  • 列出本地主机上的镜像
docker images
  • 查看容器状态
docker ps -a
  • 容器启动命令
Docker start container-name(jenkins)
Docker stop container-name
docker restart container-name
  • 进入正在运行的镜像
docker exec :在运行的容器中执行命令
语法
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
  • 容器内安装命令
  • apt-get update
同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
  • 等更新完毕以后再敲命令,即可
apt-get install vim

FAQ:

  1. docker中开放端口IPv4 forwarding is disabled. Networking will not work解决方法
  • 编辑 vi /etc/sysctl.conf
  • 添加 net.ipv4.ip_forward=1
  • 重启network服务 systemctl restart network
  1. 处理docker下载慢
  • 编辑docker配置文件vi /lib/systemd/system/docker.service
  • 将这一行:ExecStart=/usr/bin/dockerd
  • 修改为: ExecStart=/usr/bin/dockerd --registry-mirror=https://u1qbyfsc.mirror.aliyuncs.com
  1. 开放防火墙端口
  • 查看已经开放的端口
firewall-cmd --list-ports
  • 开启端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
命令含义:
   –zone #作用域
   –add-port=80/tcp #添加端口,格式为:端口/通讯协议
   –permanent #永久生效,没有此参数重启后失效
  • 重启防火墙:
firewall-cmd --reload                     #重新载入firewall配置,使配置生效
  1. Doker容器不能访问网络
  • 执行命令
#nmcli是redhat7或者centos7之后的命令,该命令可以完成网卡上所有的配置工作,并且可以写入配置文件,永久生效
nmcli connection modify docker0 connection.zone trusted
#重启docker服务
systemctl restart docker.service
  • 进入容器终端并且的保留为容器终端的输入形式(-it和bash的结合作用)
docker exec -it  CONTAINER_ID  bash
  • 使用ping命令,验证网络是否连通
ping www.baidu.com