安装环境:

阿里云轻量级服务器

CentOs8操作系统

docker+jenkins原理如下图:




jenkins配置拉取镜像打包docker jenkins docker cicd_docker


Docker安装

卸载旧版本

卸载命令如下:

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

自动安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

从阿里云镜像安装

手动安装

安装yum-utils包

yum install -y yum-utils

设置镜像仓库

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

安装docker

yum install docker-ce docker-ce-cli containerd.io

docker-ce为社区版

启动docker

systemctl start docker

查看docker版本

docker version

安装成功


jenkins配置拉取镜像打包docker jenkins docker cicd_java_02


Jenkins安装


jenkins配置拉取镜像打包docker jenkins docker cicd_测试工具_03


拉取镜像

Jenkins 的官方 Docker 镜像页面为:https://hub.docker.com/r/jenkins/jenkins/

这里我使用的是最新的镜像标签,可以使用下面的命令来拉取最新的镜像

docker pull jenkins/jenkins:latest

新建持久化目录

把容器中的 Jenkins 主目录给持久化到主机本地目录中,因此需要先在主机上新建一个本地目录:

mkdir -p /root/docker/jenkins

运行容器

docker run -d \
  -u root \
  --name jenkins \
  -p 8080:8080 \
  -v /root/docker/jenkins:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkins/jenkins

第一行表示将该容器放置在后台运行。

第二行表示使用 root 用户来运行容器。

第三行表示给这个容器起一个名字,后面可以通过该名字来管理这个容器。

第四行表示将主机的 8080 端口映射到容器中的 8080 端口,后面就可以通过主机ip:8080来访问容器中的 Jenkins,这个主机的端口是可以更改的,根据自己的需要更改即可。

第五行表示将本地的/root/docker/jenkins 目录映射为容器中的 /var/jenkins_home 目录,即步骤二中的数据持久化目录。

第六行表示将本地的 /var/run/docker.sock 文件映射为容器中的 /var/run/docker.sock 文件。目的是为了容器中的 Jenkins 能够与主机的 Docker 进行通讯。

第七行则是指定使用哪一个镜像和标签。

运行了之后会返回一个容器ID。我们可以使用该容器的名字或者ID来控制这个容器

docker启动命令:

docker start jenkins

启动后可通过主机8080端口访问jenkins


jenkins配置拉取镜像打包docker jenkins docker cicd_java_04


通过以下命令获取jenkins管理员密码以解锁jenkins

cat /root/docker/jenkins/secrets/initialAdminPassword


jenkins配置拉取镜像打包docker jenkins docker cicd_团队开发_05


可能出现的问题

安装yum-utils包时

Cannot download repomd.xml: Cannot download repodata/repomd.xml

原因:CentOS8操作系统版本生命周期结束,Linux社区不再维护,需要还源。

解决办法:将yum源换成阿里云

1)备份

cd /etc/repos.d/
sudo rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repo

2) 从阿里云下载从阿里云下载

sudo wget https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo -O /etc/yum.repos.d/Centos-vault-8.5.2111.repo
sudo wget https://mirrors.aliyun.com/repo/epel-archive-8.repo -O /etc/yum.repos.d/epel-archive-8.repo

3) 替换源链接

sed -i 's/mirrors.cloud.aliyuncs.com/mirrors.aliyun.com/g'  /etc/yum.repos.d/Centos-vault-8.5.2111.repo 
sed -i 's/mirrors.cloud.aliyuncs.com/mirrors.aliyun.com/g'  /etc/yum.repos.d/epel-archive-8.repo

4) 清除并更新缓存

yum clean all && yum makecache

5) 验证

sudo yum update


jenkins配置拉取镜像打包docker jenkins docker cicd_jenkins_06