CentOS部署Docker+Jenkins

Centos搭建Docker

安装前提条件

Docker 要求 CentOS 系统的内核版本高于 3.10 ,首先验证你的服务器是否支持Docker!

通过 uname -r 命令查看当前的内核版本

uname -r
[krala@localhost ~]$ uname -r
3.10.0-1160.el7.x86_64

一. 安装Docker

  1. 首先检测我们的系统是否已经安装过Docker,如果安装则需卸载。代码中“\”符号为换行符,相当于一行内容分为多行,这是检测docker的各种组件
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

执行结果:

Loaded plugins: fastestmirror, langpacks
No Match for argument: docker
No Match for argument: docker-client
No Match for argument: docker-client-latest
No Match for argument: docker-common
No Match for argument: docker-latest
No Match for argument: docker-latest-logrotate
No Match for argument: docker-logrotate
No Match for argument: docker-engine
No Packages marked for removal

  1. 下载安装Docker依赖的工具,更新yum包 (生产环境此步骤操作须谨慎,自己学习的情况不影响生产下操作)
yum -y update
注意​ 
yum -y update:升级所有包同时也升级软件和系统内核;​ 
yum -y upgrade:只升级所有包,不升级软件和系统内核

执行结果:

  vim-filesystem.x86_64 2:7.4.629-8.el7_9                                   vim-minimal.x86_64 2:7.4.629-8.el7_9                                       
  virt-what.x86_64 0:1.18-4.el7_9.1                                         vsftpd.x86_64 0:3.0.2-29.el7_9                                             
  webkitgtk4.x86_64 0:2.28.2-3.el7                                          webkitgtk4-devel.x86_64 0:2.28.2-3.el7                                     
  webkitgtk4-jsc.x86_64 0:2.28.2-3.el7                                      webkitgtk4-jsc-devel.x86_64 0:2.28.2-3.el7                                 
  wpa_supplicant.x86_64 1:2.6-12.el7_9.2                                    x3270.x86_64 0:3.3.12ga12-5.el7_9                                          
  x3270-text.x86_64 0:3.3.12ga12-5.el7_9                                    x3270-x11.x86_64 0:3.3.12ga12-5.el7_9                                      
  xfsdump.x86_64 0:3.1.7-4.el7_9                                            xmlsec1.x86_64 0:1.2.20-8.el7_9                                            
  xmlsec1-openssl.x86_64 0:1.2.20-8.el7_9                                   xorg-x11-drv-ati.x86_64 0:19.0.1-3.el7_7                                   
  xorg-x11-server-Xorg.x86_64 0:1.20.4-27.el7_9                             xorg-x11-server-common.x86_64 0:1.20.4-27.el7_9                            
  xterm.x86_64 0:295-3.el7_9.1                                              xz.x86_64 0:5.2.2-2.el7_9                                                  
  xz-devel.x86_64 0:5.2.2-2.el7_9                                           xz-libs.x86_64 0:5.2.2-2.el7_9                                             
  zenity.x86_64 0:3.28.1-2.el7_9                                            zlib.x86_64 0:1.2.7-21.el7_9                                               
  zlib-devel.x86_64 0:1.2.7-21.el7_9                                       

Complete!

  1. 安装需要的软件包, yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

执行结果:

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest version
Package device-mapper-persistent-data-0.8.5-3.el7_9.2.x86_64 already installed and latest version
Package 7:lvm2-2.02.187-6.el7_9.5.x86_64 already installed and latest version
Nothing to do

  1. 添加阿里仓库的软件源,更新本地镜像
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

执行结果:

Loaded plugins: fastestmirror, langpacks
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

  1. 执行以下命令
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

执行结果:

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
http://mirrors.bfsu.edu.cn/centos/7.9.2009/os/x86_64/repodata/repomd.xml: [Errno 14] curl#52 - "Empty reply from server"
Trying other mirror.
base                                                                                                                            | 3.6 kB  00:00:00     
docker-ce-stable                                                                                                                | 3.5 kB  00:00:00     
extras                                                                                                                          | 2.9 kB  00:00:00     
updates                                                                                                                         | 2.9 kB  00:00:00     
(1/2): docker-ce-stable/7/x86_64/primary_db                                                                                     | 140 kB  00:00:00     
(2/2): docker-ce-stable/7/x86_64/updateinfo                                                                                     |   55 B  00:00:01     
Metadata Cache Created

  1. 安装社区版

查看docker可用版本

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

安装Docker社区版

sudo yum -y install docker-ce

执行结果:

Total                                                                                                                   10 MB/s | 112 MB  00:00:11     
Retrieving key from https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
Importing GPG key 0x621E9F35:
 Userid     : "Docker Release (CE rpm) <docker@docker.com>"
 Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
 From       : https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 2:container-selinux-2.119.2-1.911c772.el7_8.noarch                                                                                 1/10 
  Installing : containerd.io-1.6.28-3.2.el7.x86_64                                                                                                2/10 
  Installing : docker-compose-plugin-2.25.0-1.el7.x86_64                                                                                          3/10 
  Installing : docker-buildx-plugin-0.13.1-1.el7.x86_64                                                                                           4/10 
  Installing : 1:docker-ce-cli-26.0.0-1.el7.x86_64                                                                                                5/10 
  Installing : slirp4netns-0.4.3-4.el7_8.x86_64                                                                                                   6/10 
  Installing : fuse3-libs-3.6.1-4.el7.x86_64                                                                                                      7/10 
  Installing : fuse-overlayfs-0.7.2-6.el7_8.x86_64                                                                                                8/10 
  Installing : docker-ce-rootless-extras-26.0.0-1.el7.x86_64                                                                                      9/10 
  Installing : 3:docker-ce-26.0.0-1.el7.x86_64                                                                                                   10/10 
  Verifying  : 3:docker-ce-26.0.0-1.el7.x86_64                                                                                                    1/10 
  Verifying  : fuse3-libs-3.6.1-4.el7.x86_64                                                                                                      2/10 
  Verifying  : fuse-overlayfs-0.7.2-6.el7_8.x86_64                                                                                                3/10 
  Verifying  : slirp4netns-0.4.3-4.el7_8.x86_64                                                                                                   4/10 
  Verifying  : 2:container-selinux-2.119.2-1.911c772.el7_8.noarch                                                                                 5/10 
  Verifying  : 1:docker-ce-cli-26.0.0-1.el7.x86_64                                                                                                6/10 
  Verifying  : containerd.io-1.6.28-3.2.el7.x86_64                                                                                                7/10 
  Verifying  : docker-buildx-plugin-0.13.1-1.el7.x86_64                                                                                           8/10 
  Verifying  : docker-ce-rootless-extras-26.0.0-1.el7.x86_64                                                                                      9/10 
  Verifying  : docker-compose-plugin-2.25.0-1.el7.x86_64                                                                                         10/10 

Installed:
  docker-ce.x86_64 3:26.0.0-1.el7                                                                                                                      

Dependency Installed:
  container-selinux.noarch 2:2.119.2-1.911c772.el7_8   containerd.io.x86_64 0:1.6.28-3.2.el7             docker-buildx-plugin.x86_64 0:0.13.1-1.el7   
  docker-ce-cli.x86_64 1:26.0.0-1.el7                  docker-ce-rootless-extras.x86_64 0:26.0.0-1.el7   docker-compose-plugin.x86_64 0:2.25.0-1.el7  
  fuse-overlayfs.x86_64 0:0.7.2-6.el7_8                fuse3-libs.x86_64 0:3.6.1-4.el7                   slirp4netns.x86_64 0:0.4.3-4.el7_8           

Complete!

  1. 关闭防火墙,启动Docker
    1)关闭防火墙
# 关闭

systemctl stop firewalld

# 禁止开机启动防火墙

systemctl disable firewalld

执行结果:

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

2)启动docker

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

systemctl enable docker # 设置开机自启

3)查看Docker版本

docker -v

执行节结果:

Docker version 26.0.0, build 2ae903e

查看Docker信息

docker info

执行结果:

Client: Docker Engine - Community
 Version:    26.0.0
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.13.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.25.0
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 26.0.0
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
 Kernel Version: 3.10.0-1160.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 31.2GiB
 Name: localhost.localdomain
 ID: 93333783-132b-4675-81cb-b5886ec91bf4
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

二. CentOS7安装DockerCompose

  1. 下载,Linux下需要通过命令下载:
# 安装

curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

执行结果:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 11.1M  100 11.1M    0     0  3565k      0  0:00:03  0:00:03 --:--:-- 4906k

  1. 修改文件权限
# 修改权限

chmod +x /usr/local/bin/docker-compose
  1. Base自动补全命令:
# 补全命令

curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

执行结果:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13500  100 13500    0     0  25134      0 --:--:-- --:--:-- --:--:-- 25139

Docker 部署jenkins

  1. Docker 镜像搜索
docker search jenkins

执行结果:

NAME                           DESCRIPTION                                     STARS     OFFICIAL
jenkins                        DEPRECATED; use "jenkins/jenkins:lts" instead   5685      [OK]
jenkins/jenkins                The leading open source automation server       3881      
jenkins/inbound-agent          Docker image for a Jenkins agent which can c…   131       
jenkins/jnlp-slave             a Jenkins agent which can connect to Jenkins…   157       
jenkins/ssh-agent              Docker image for Jenkins agents connected ov…   52        
jenkins/jnlp-agent-maven       A JNLP-based agent with Maven 3 built in        9         
jenkins/slave                  base image for a Jenkins Agent, which includ…   49        
bitnami/jenkins                Bitnami Docker Image for Jenkins                66        
jenkins/ssh-slave              A Jenkins slave using SSH to establish conne…   39        
jenkins/agent                                                                  62        
jenkins/jnlp-agent-ruby                                                        1         
jenkins/jnlp-agent-docker                                                      10        
jenkins/jnlp-agent-node                                                        1         
jenkins/ath                    Jenkins Acceptance Test Harness                 1         
jenkins/jnlp-agent-python      A JNLP-based agent with Python built in         3         
jenkins/jenkins-experimental   Experimental images of Jenkins. These images…   3         
rancher/jenkins-jenkins                                                        1         
jenkins/pct                    Plugin Compat Tester - no longer published a…   5         
jenkins/jenkinsfile-runner     Jenkinsfile Runner packages                     3         
rancher/jenkins-jnlp-slave                                                     0         
jenkins/core-pr-tester         Docker image for testing pull-requests sent …   1         
jenkins/jnlp-agent-alpine                                                      2         
jenkins/jnlp-agent-coresdk                                                     2         
rancher/jenkins-slave          Jenkins Build Slave                             0         
jenkins/evergreen              An automatically self-updating Jenkins distr…   5   

获取2.426.1 (November 2023) and newer版本的jenkins, jenkins官网地址:https://pkg.jenkins.io/redhat-stable/, 注意:最好是拉取最新版的Jenkins镜像,旧版后续安装很多插件无法安装

拉取镜像报错,多试几次

[root@localhost /]# docker pull jenkins/jenkins:2.426.1
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled (Client.Timeout exceeded while awaiting headers)

docker pull jenkins/jenkins:2.426..1

获取版本镜像,有获取的各进度显示,这个需要等待几分钟,最后显示到对应版本信息的时候,表示拉取完成了

[root@localhost /]# docker pull jenkins/jenkins:2.426.1
2.426.1: Pulling from jenkins/jenkins
1339eaac5b67: Pull complete 
ee7fe1de5234: Pull complete 
a167e5ee9d3d: Pull complete 
635f2040c45d: Pull complete 
0de24a2d2be8: Pull complete 
713854f8e14e: Pull complete 
e7c234de7c34: Pull complete 
e7c993dd256d: Pull complete 
9418264787f2: Pull complete 
a42be93486cb: Pull complete 
fba1e1892f7f: Pull complete 
af4f2c783b33: Pull complete 
f7f0bf5c5bf2: Pull complete 
9e8d31920a67: Pull complete 
Digest: sha256:c7b2811764804691a0eb8cc83a1e30c6ebdce0bf127818608e1adad753e905b4
Status: Downloaded newer image for jenkins/jenkins:2.426.1
docker.io/jenkins/jenkins:2.426.1

  1. Jenkins 安装及启动
mkdir -p  /home/Krala/jenkins_node

升级权限,赋权:
chown -R 1000 /home/Krala/jenkins_node
chmod -R 777 /home/Krala/jenkins_node

赋文件访问权限
chmod 777 /var/run/docker.sock

配置并启动jenkins docker

docker run -d -uroot -p 8282:8080 --name jenkinsqq -e LANG=C.UTF-8 -v /home/Krala/jenkins_node:/var/jenkins_home jenkins/jenkins:2.426.1

执行结果:

[root@localhost /]# docker run -d -uroot -p 8282:8080 --name jenkinsqq -e LANG=C.UTF-8 -v /home/Krala/jenkins_node:/var/jenkins_home jenkins/jenkins:2.426.1
4350ac84e7e309809c7e01d5eb68e83b32530a62df74bd87142e10e8a9d2f8a0

参数说明:

-d    后台启动
-p    端口映射  jenkins默认8080,映射为8000,及Web操作界面的端口。
-v    目录挂载
       最后两个是 docker 的运行目录和启动目录。
--name  容器名称

启动完成后,通过 docker ps -a 查看

docker ps -a 
[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE                     COMMAND                  CREATED          STATUS                     PORTS                                                  NAMES
4350ac84e7e3   jenkins/jenkins:2.426.1   "/usr/bin/tini -- /u…"   8 seconds ago    Up 7 seconds               50000/tcp, 0.0.0.0:8282->8080/tcp, :::8282->8080/tcp   jenkinsqq


进入 jenkins 的容器内部,查看 docker 是否挂载成功

docker exec -it -uroot jenkinsqq bash
[root@localhost /]# docker exec -it -uroot jenkinsqq bash
root@4350ac84e7e3:/# 
root@4350ac84e7e3:/# 
root@4350ac84e7e3:/# 

cat /var/jenkins_home/secrets/initialAdminPassword ,得到密码

cat /var/jenkins_home/secrets/initialAdminPassword 
root@4350ac84e7e3:/# cat /var/jenkins_home/secrets/initialAdminPassword 
2580fb4bbfcd487a9884c8d209eb6ac5

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值