1.软件安装
docker安装
CentOS Docker 安装:https://www.runoob.com/docker/centos-docker-install.html
要下载最新版,否则不支持docker for docker,也就是无法实现docker容器里面调用docker。
jdk安装
版本:Oracle jdk1.8.0_311
安装位置:/usr/local/jdk1.8.0_311
$ tar -zxvf jdk-8u311-linux-x64.tar.gz -C /usr/local/
maven安装
主要是依赖包的统一管理,然后是服务的构建以及打包等等
版本:apache-maven-3.8.3
安装位置:/var/jenkins_node/maven/apache-maven-3.8.3
$ unzip -r maven-3.8.3.zip /var/jenkins_node/maven/ (解压之后到指定目录下更换文件名)
kubectl安装
在 Linux 上安装和设置 kubectl:https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
主要是操作kubernetes集群也就是k8s上pod的创建、修改、监控、删除等生命周期的管理。
kubectl get pod -o wide //获取所有pod节点
kubectl exec -it curl-87b54756-rbqzg -- sh //进入节点容器
Jenkins启动
$ docker search jenkins //查看dockerhub上关于Jenkins的镜像
$ docker pull jenkins //选择符合自己要求的Jenkins镜像拉取下来
$ docker run \ //启动Jenkins容器
—name Jenkins \ //为创建的容器命名
-u root \ //以root用户启动Jenkins(默认是jenkins用户)
-p 9090:8080 \ //表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射
--restart=always \ //参数能够使我们在启动docker时,自动启动相关容器
--env TZ=Asia/Shangha \ //时区改成东八区
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai
-v /etc/localtime:/etc/localtime \ //共享主机时间(跟上一条功能重复)
-v /var/jenkins_node:/var/jenkins_home \ //挂载Jenkins容器中的/var/jenkins_home到宿主机jenkins_node,如果jenkins_node不存在,会自动创建 (maven也在这里同时挂载的)
-v /var/run/docker.sock:/var/run/docker.sock \ //挂载docker 让Jenkins可以执行docker命令
-v /usr/bin/docker:/usr/bin/docker \ #挂载docker命令
-v /usr/local/jdk1.8.0_311:/usr/lib/jvm/java-1.8.0 \ //挂载jdk,因为拉取的jenkins镜像默认是用的openjdk,有很多依赖包openjdk都是做了删减的,无法满足我的部署需求,所以这里我往镜像里挂在了一个oraclejdk
-v /usr/local/bin/kubectl:/usr/local/bin/kubectl \ //挂载kubectl命令,主要是为了操作kubernetes集群也就是k8s上pod的创建、修改、监控、删除等生命周期的管理。
-v /root/.kube:/root/.kube \ //挂载配置集群凭证(公网内网分清楚),就是kebectl想要操作k8s需要的证书
-d \ //在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)
jenkins \ //通过此镜像启动容器