从零开始搭建流水线(一)

568 阅读5分钟

从零开始搭建流水线(一)

一、安装docker

1.移除旧docker

yum remove docker*

2.设置docker yum源

2.1先安装yum utils

yum install -y yum-utils

image-20210808153937207.png

2.2设置docker阿里云yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

image-20210808154149485.png

3.安装docker

3.1选择合适的docker版本

yum list docker-ce --showduplicates | sort -r

image-20210808154312701.png

  • docker默认会安装最新版本的,一般在使用过程中,我们会选择相对稳定的版本。最新版本有一定的风险。
  • 我们可以在以上版本中选择一个版本进行安装

3.2安装docker

yum install docker-ce-3:19.03.9-3.el7.x86_64 docker-ce-cli-3:19.03.9-3.el7.x86_64 containerd.io

image-20210808155353875.png

image-20210808155415761.png

  • 安装过程中会出现两次确认,均输入y
  • 最后出现complete,至此,docker安装完成

二、安装Jenkins

可以参照Jenkins官方文档,有中文。

官方文档对Jenkins的介绍非常详细和完整。

以下是按照jenkins的步骤

1.选择docker镜像

docker hub选择镜像

搜索Jenkins

image-20210808160712709.png image-20210808160741765.png

点进来后,可以看到官方说这个镜像已经废弃两年,并且提供新的地址。

image-20210808160943594.png

image-20210808162931598.png

点击tags,可以选择不同的镜像。

2Jenkins安装 官方命令

docker run \
  -u root \
  --rm \
  -d \ 
  -p 8080:8080 \ 
  -p 50000:50000 \ 
  -v jenkins-data:/var/jenkins_home \ 
  -v /var/run/docker.sock:/var/run/docker.sock \ 
  jenkinsci/blueocean 

-- rm

(可选) jenkinsci/blueocean 关闭时自动删除Docker容器(下图为实例)。如果您需要退出Jenkins,这可以保持整洁。

-d

(可选)jenkinsci/blueocean 在后台运行容器(即“分离”模式)并输出容器ID。如果您不指定此选项, 则在终端窗口中输出正在运行的此容器的Docker日志。

-p 8080:8080

映射(例如“发布”)jenkinsci/blueocean 容器的端口8080到主机上的端口8080。 第一个数字代表主机上的端口,而最后一个代表容器的端口。因此,如果您为此选项指定 -p 49000:8080 ,您将通过端口49000访问主机上的Jenkins。

-p 50000:50000

(可选)将 jenkinsci/blueocean 容器的端口50000 映射到主机上的端口50000。 如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。 您可以通过“ 配置全局安全性” 页面更改Jenkins主服务器上的端口号。如果您要将您的Jenkins主机的JNLP代理端口的TCP端口 值更改为51000(例如),那么您需要重新运行Jenkins(通过此 docker run …命令)并指定此“发布”选项 -p 52000:51000,其中最后一个值与Jenkins master上的这个更改值相匹配,第一个值是Jenkins主机的主机上的端口号, 通过它,基于JNLP的Jenkins代理与Jenkins主机进行通信 - 例如52000。

-v jenkins-data:/var/jenkins_home \

(可选,但强烈建议)映射在容器中的/var/jenkins_home 目录到具有名字 jenkins-datavolume。 如果这个卷不存在,那么这个 docker run 命令会自动为你创建卷。 如果您希望每次重新启动Jenkins(通过此 docker run ... 命令)时保持Jenkins状态,则此选项是必需的 。 如果你没有指定这个选项,那么在每次重新启动后,Jenkins将有效地重置为新的实例。 注意: 所述的 jenkins-data 卷也可以 docker volume create命令创建: docker volume create jenkins-data 代替映射 /var/jenkins_home 目录转换为Docker卷,还 可以将此目录映射到计算机本地文件系统上的目录。 例如,指定该选项 -v $HOME/jenkins:/var/jenkins_home 会将容器的 /var/jenkins_home 目录映射 到 本地计算机上目录中的 jenkins 子目录, 该$HOME目录通常是 /Users/<your-username>/jenkins/home/<your-username>/jenkins

-v jenkins-data:/var/jenkins_home

(可选,但强烈建议)映射在容器中的/var/jenkins_home 目录到具有名字 jenkins-datavolume。 如果这个卷不存在,那么这个 docker run 命令会自动为你创建卷。 如果您希望每次重新启动Jenkins(通过此 docker run ... 命令)时保持Jenkins状态,则此选项是必需的 。 如果你没有指定这个选项,那么在每次重新启动后,Jenkins将有效地重置为新的实例。

注意: 所述的 jenkins-data 卷也可以 docker volume create命令创建: docker volume create jenkins-data 代替映射 /var/jenkins_home 目录转换为Docker卷,还 可以将此目录映射到计算机本地文件系统上的目录。 例如,指定该选项 -v $HOME/jenkins:/var/jenkins_home 会将容器的 /var/jenkins_home 目录映射 到 本地计算机上目录中的 jenkins 子目录, 该$HOME目录通常是 /Users/<your-username>/jenkins/home/<your-username>/jenkins

-v /var/run/docker.sock:/var/run/docker.sock

(可选 /var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字。 该映射允许 jenkinsci/blueocean 容器与Docker守护进程通信, 如果 jenkinsci/blueocean 容器需要实例化其他Docker容器,则该守护进程是必需的。 如果运行声明式管道,其语法包含agent部分用 docker

  • 以上摘自Jenkins官网

3.启动docker

systemctl start docker

4.配置阿里云docker镜像加速

image-20210808162931598.png

1.登录阿里云

2.选择容器镜像服务

3.选择镜像加速

4.根据自己系统选择,直接复制到自己机器执行

4.安装Jenkins

  • 执行以下命令进行安装

    docker run \
      -u root \
      -d \
      -p 8080:8080 \
      -p 50000:50000 \
      -v jenkins-data:/var/jenkins_home \
      -v /etc/localtime:/etc/localtime:ro \
      -v /var/run/docker.sock:/var/run/docker.sock \
      --restart=always \
      jenkinsci/blueocean
    

image-20210808163842439.png

  • 下载完成后,看Jenkins是否成功启动

image-20210808164957648.png

  • 此时可以通过ip:8080访问Jenkins

image-20210808205812256.png

  • 此时需要输入密码,启动的时候对docker做了挂载,所以次目录位置也会发生变动
  • 可以通过查看启动log的方式获取此密码
4.1查看docker ID
docker ps

image-20210808210127729.png

4.2根据ID查看log
docker logs 95db67934576

image-20210808210224640.png

image-20210808210342705.png

  • 红框中便是密码,复制到Jenkins中

5.按照Jenkins插件

image-20210808210508501.png

  • 众所周知,Jenkins拥有非常多且功能强大的插件。
  • 选择推荐安装 image-20210808210628300.png

6.创建管理员用户

image-20210808210652143.png

image-20210808210855443.png

  • 接下来点击重启。
  • 刷新页面来到登录页

image-20210808211106145.png

  • 至此,Jenkins就搭建完毕了,