Docker搭建Jenkins

Docker搭建Jenkins

准备工作

  1. 先准备配置目录和持久化目录,举个栗子:mkdir -p /opt/module/jenkins/{jenkins_home,plugins,custom_config/Maven_Data}

    bash 复制代码
    #添加权限 
    chmod 777 /opt/module/jenkins/jenkins_home
    chmod 777 /opt/module/jenkins/plugins
    chmod 777 /opt/module/jenkins/custom_config
    chmod 777 /opt/module/jenkins/custom_config/Maven_Data
    
    #修改拥有者
    chown -R dolphin:dolphin /opt/module/jenkins
  2. 下载Maven: maven 3.9.4

    bash 复制代码
    wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz
    bash 复制代码
    #解压maven
    tar -zxf apache-maven-3.9.4-bin.tar.gz -C /opt/module/jenkins/custom_config
    1. 配置Maven国内镜像源

      bash 复制代码
      #配置Maven国内镜像源
      vim /opt/module/jenkins/custom_config/apache-maven-3.9.4/conf/settings.xml
      xml 复制代码
      <!--修改中央仓库为国内阿里镜像站-->
      <mirror>
      	<id>aliyun-central</id>
      	<mirrorOf>central</mirrorOf>
      	<name>阿里云中央仓库</name>
      	<url>https://maven.aliyun.com/repository/central</url>
      </mirror>
      <mirror>
      	<id>aliyun-public</id>
      	<mirrorOf>public</mirrorOf>
      	<name>阿里云公共仓库</name>
      	<url>https://maven.aliyun.com/repository/public</url>
      </mirror>
      <mirror>
      	<id>aliyun-spring</id>
      	<name>Aliyun Spring</name>
      	<url>https://maven.aliyun.com/repository/spring</url>
      	<mirrorOf>spring-release</mirrorOf>
      </mirror>
      <mirror>
      	<id>uk</id>
      	<mirrorOf>central</mirrorOf>
      	<name>Human Readable Name for this Mirror.</name>
      	<url>http://uk.maven.org/maven2/</url>
      </mirror>
      <mirror>
      	<id>CN</id>
      	<name>OSChina Central</name>
      	<url>http://maven.oschina.net/content/groups/public/</url>
      	<mirrorOf>central</mirrorOf>
      </mirror>
      <mirror>
      	<id>nexus</id>
      	<name>internal nexus repository</name>
      	<url>http://repo.maven.apache.org/maven2</url>
      	<mirrorOf>central</mirrorOf>
      </mirror>
    2. 配置Maven jar包保存路径

      bash 复制代码
      #配置Maven jar包保存路径
      vim /opt/module/jenkins/custom_config/apache-maven-3.9.4/conf/settings.xml
      xml 复制代码
      <!--指定本地Maven仓库的路径-->
      <localRepository>/opt/module/jenkins/custom_config/Maven_Data</localRepository>
  3. 下载JDK17: JDK Development Kit 17.0.8

    bash 复制代码
    wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
    bash 复制代码
    #解压jdk-17_linux-x64_bin.tar.gz
    tar -zxf jdk-17_linux-x64_bin.tar.gz -C /opt/module/jenkins/custom_config

拉取官方jenkins镜像

bash 复制代码
# 拉取【jenkins官方版】 jenkins/jenkins:2.422-jdk17
docker pull jenkins/jenkins:2.422-jdk17

# 拉取最新版jenkins docker pull jenkins镜像
docker pull jenkins/jenkins:lts-jdk17

启动一个临时容器【通过创建一个临时的测试容器,用来复制配置文件,来反推配置】

bash 复制代码
docker run -p 8080:8080 -p 50000:50000 --name=jenkins jenkins:2.60.3
复制jenkins的配置文件到宿主机中
bash 复制代码
# 将容器jenkins_home文件夹下内容复制到宿主机
docker cp jenkins /var/jenkins_home /opt/module/jenkins/jenkins_home
移除临时容器
bash 复制代码
docker stop jenkins
docker rm jenkins

运行镜像

英文版
bash 复制代码
docker run -d \
  -p 8080:8080 \
  -p 50000:50000 \
  -v /opt/module/jenkins/jenkins_home:/var/jenkins_home \
  -v /opt/module/jenkins/plugins:/var/jenkins_home/plugins \
  -v /opt/module/jenkins/custom_config/apache-maven-3.9.4:/usr/local/apache-maven-3.9.4 \
  -v /opt/module/jenkins/custom_config/jdk-17.0.8:/usr/local/jdk-17.0.8 \
  -e MAVEN_HOME=/usr/local/apache-maven-3.9.4 \
  -e JAVA_HOME=/usr/local/jdk-17.0.8 \
  --restart=always \
  --name=jenkins jenkins/jenkins:2.422-jdk17

参数说明:

  • docker run -d: 启动一个Docker容器并将其设置为在后台(守护进程模式)运行。
  • -p 8080:8080: 将容器的8080端口映射到宿主机的8080端口,这样你可以通过宿主机的8080端口访问Jenkins。
  • -p 50000:50000: 将容器的50000端口映射到宿主机的50000端口,用于Jenkins的代理节点。
  • -v /opt/module/jenkins/jenkins_home:/var/jenkins_home: 将宿主机上的/opt/module/jenkins/jenkins_home目录映射到容器内的/var/jenkins_home目录,这是Jenkins的主要数据和配置目录。
  • -v /opt/module/jenkins/plugins:/var/jenkins_home/plugins: 将宿主机上的/opt/module/jenkins/plugins目录映射到容器内的/var/jenkins_home/plugins目录,用于存储Jenkins插件。
  • -v /opt/module/jenkins/custom_config/apache-maven-3.9.4:/usr/local/apache-maven-3.9.4: 将宿主机上的/opt/module/jenkins/custom_config/apache-maven-3.9.4目录映射到容器内的/usr/local/apache-maven-3.9.4目录,用于自定义Maven的配置。
  • -v /opt/module/jenkins/custom_config/jdk-17.0.8:/usr/local/jdk-17.0.8: 将宿主机上的/opt/module/jenkins/custom_config/jdk-17.0.8目录映射到容器内的/usr/local/jdk-17.0.8目录,用于自定义JDK的配置。
  • -e MAVEN_HOME=/usr/local/apache-maven-3.9.4: 设置一个名为MAVEN_HOME的环境变量,指定Maven的安装路径。
  • -e JAVA_HOME=/usr/local/jdk-17.0.8: 设置一个名为JAVA_HOME的环境变量,指定JDK的安装路径。
  • --name=jenkins: 指定容器的名称为"jenkins"。
  • jenkins/jenkins:2.422-jdk17: 指定要运行的Docker镜像,这是官方的Jenkins Docker镜像,版本为2.422,并包含了JDK 17。

查看启动日志

bash 复制代码
#docker logs [服务id/服务名]
docker logs jenkins

docker logs -f -t --tail 20 jenkins

进入jenkins容器内部

bash 复制代码
docker ps     # 查看正在运行的容器,并得到 容器id

# 进入tomcat容器内部
docker exec -it [容器id] /bin/bash  # 中间那个是容器id 就是 CONTAINER_ID
docker exec -it [容器id] /bin/sh
#  -it 表示进入
bash 复制代码
docker exec -it jenkins sh
docker exec -it jenkins /bin/sh
bash 复制代码
# 使用 命令别名 开启 ll命令
cat <<EOF >> /etc/profile
alias ll='ls -l --color=tty'
alias grep='grep --color=auto'
EOF

source /etc/profile

查看防火墙【开放端口】

bash 复制代码
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
firewall-cmd --query-port=50000/tcp

# 开放80、443端口
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=50000/tcp

# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --permanent --remove-port=50000/tcp

# 重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

# 查看已经开发那些端口
firewall-cmd --list-ports
firewall-cmd --zone=public --list-ports

测试

bash 复制代码
#浏览器中服务器
http://虚拟机IP:8080
http://虚拟机IP:50000

删除容器

1. 停止和删除Jenkins容器
bash 复制代码
docker stop jenkins
docker rm jenkins
2.查看数据卷的详细信息,包括挂载到容器的数据卷的名称:
bash 复制代码
docker inspect jenkins

这将提供Jenkins容器的详细信息,包括挂载的数据卷的名称。在JSON输出中,寻找"Mounts"字段,其中包含有关挂载的信息。

3.一旦你找到了相关的数据卷名称,你可以使用以下命令删除它:
bash 复制代码
#查看所有数据卷
docker volume ls

docker volume rm <volume_name>

请将<volume_name>替换为实际的数据卷名称,这样就可以删除与之关联的数据卷。

相关推荐
加油vekiki3 分钟前
linux服务器搭建docker、docker-compose
linux·服务器·docker·容器
迎仔10 分钟前
CSI (Container Storage Interface) 通俗原理解析:K8s 的“万能存储插头”
云原生·容器·kubernetes
JavaLearnerZGQ10 分钟前
Docker安装ElasticSearch8.13.0、Kibana、中文分词器,版本
docker·中文分词·jenkins
亿牛云爬虫专家11 分钟前
采集架构的三次升级:脚本、Docker 与 Kubernetes
爬虫·docker·架构·kubernetes·脚本·代理ip·采集
qq_2739002315 分钟前
Docker 与 Singularity 镜像实战指南
运维·docker·容器
JNU freshman24 分钟前
使用 cephadm + Docker 镜像在三台服务器上部署 Ceph 集群(含网络规划与 OSD DB/WAL 分离)
服务器·ceph·docker
mqiqe34 分钟前
K8S 算力架构
容器·架构·kubernetes
为什么要做囚徒1 小时前
Docker实战系列之Root目录迁移指南:单机环境下的完整实践
运维·docker·容器
南梦浅1 小时前
[特殊字符]️ Docker 镜像加速器完整配置流程下面是在 CentOS 7 系统上配置 Docker 镜像加速器的完整步骤
linux·docker·centos
weixin_462446231 小时前
使用 Docker / Docker Compose 部署 PdfDing —— 个人 PDF笔记
笔记·docker·pdf