Myluzh Blog

Strive to become a dream architect.

Docker部署Jenkins与创建流水线笔记

发布时间: 2023-11-7 文章作者: myluzh 分类名称: Docker


0x00 前言

使用docker部署jenkins后使用流水线docker build提示找不到docker命令,找了好久解决了,需要把docker挂载出来。

第二个问题是docker login 私有仓的时候 提示证书不对,需要在配置文件添加下insecure-registries


0x01 jenkins正确部署命令

docker run --name jenkins \
 -u root \
 --rm -d \
 -p 8092:8080 \
 -v /var/jenkins_home:/var/jenkins_home \
 -v $(which docker):/usr/bin/docker \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /etc/docker/:/etc/docker \
 jenkins/jenkins:lts

启动后在本机/etc/docker/daemon.json上添加insecure-regstries里面写上你jenkins流水线docker push的仓库地址,这样可以避免docker login 私有仓库报错Error response from daemon: Get "https://harbor.itho.cn:5443/v2/": x509: certificate relies on legacy Common Name field, use SANs instead

[root@CentOS7]# vim /etc/docker/daemon.json
{"insecure-registries": [
    "harbor.itho.cn:5443"
  ]}         


0x02 其他命令

#删除正在运行的jenkins容器
docker rm -f jenkins
#进入容器内部
docker exec -u root -it jenkins bash
#查看admin密码
cat /var/jenkins_home/secrets/initialAdminPassword


0x03 一个简单的流水线示例
# 1、源码管理->Git->Repository URL
Repository URL="https://github.com/myluzh/hellok8s/"

# 2、Build Steps->执行shell->命令
VERSION=`git rev-parse --short HEAD`
projectName='hellok8s'
dockerPushIp='harbor.itho.cn:5443'
dockerregister=$dockerPushIp/mytest/$projectName:$VERSION
docker login $dockerPushIp --username="admin" --password="qwer1234."
echo "开始打包镜像 $dockerregister"
docker build -t $dockerregister .
echo "开始提交镜像 $dockerregister"
docker push $dockerregister

标签: docker devops cicd jenkins

发表评论