一、安装Docker

Docker部署Jenkins前提已经安装Docker,这边脚本安装Docker。
#1.编写Docker安装脚本
[root@ip-10-0-12-212 ~]# vim Ins_Docker.sh
#!/usr/bin/bash
# Author:jh
# Time:2021-10-09 11:54:22
# Name:Ins_Docker.sh
# Version: 1.0
# Discription: To
source /etc/init.d/functions rely_software=(yum-utils device-mapper-persistent-data lvm2) echo "-----------------#1.检测系统内核版本-----------------"
kernel_version=`uname -a |awk '{print $3}'|cut -d. -f1`
[ $kernel_version -ge 3 ] && action "The System Install Docker is ..." /usr/bin/true || action "The System Can not Install Docker is ...";exit echo "-----------------#2.安装Docker依赖软件-----------------"
for i in ${rely_software[*]}
do
rpm -q $i &>/dev/null
if [ $? -eq 0 ];then
echo "$i is installed"
else
yum -y install $i &>/dev/null
action "$i is installing" /usr/bin/true
fi
done echo "-----------------#3.添加Docker镜像源-----------------"
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[ $? -eq 0 ] && action "Docker Image add is ..." /usr/bin/true || echo "Docker Image add is ..." /usr/bin/false;exit echo "-----------------#4.安装Docker-----------------"
yum -y install docker-ce
rpm -qa |grep docker-ce
[ $? -eq 0 ] && action "Docker-ce is installed ..." /usr/bin/true || action "Docker-ce is install ..." /usr/bin/false;exit echo "-----------------#5.启动Docker并设置开机自启-----------------"
systemctl enable --now docker
[ $? -eq 0 ] && action "Docker Start is ...;" /usr/bin/true || action "Docker start is ..." /usr/bin/false
docker_version=`docker -v |awk -F ',' '{print $1}'` echo "-----------------#6.设置Docker加速器-----------------"
sudo mkdir -p /etc/docker
sudo cat >/etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://8mh75mhz.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker echo "-----------------#7.查看Docker是否安装完成-----------------"
cat << EOF
+-------------------------------------------------+
| $docker_version 安 装 已 完 成 |
| 请 使 用 相 关 服 务 ! |
+-------------------------------------------------+
EOF echo "-----------------#8.迁移Docker根目录-----------------"
systemctl stop docker
mv /var/lib/docker/ /data/
sed -i 's#ExecStart=/usr/bin/dockerd#ExecStart=/usr/bin/dockerd --graph=/data/docker#g' /usr/lib/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker.service echo "-----------------#9.验证Docker根目录是否生效-----------------"
docker info |grep "Docker Root Dir" sleep 5 echo ""-----------------你的小可爱已完成Docker全部部署-----------------"
#2.给脚本添加执行权限
[root@ip-10-0-12-212 ~]# chmod +x Ins_Docker.sh #3.执行脚本
[root@ip-10-0-12-212 ~]# sh Ins_Docker.sh

二、编写Dockerfile

#1.创建Dockerfile存放目录
[root@ip-10-0-12-212 ~]# mkdir jenkins
[root@ip-10-0-12-212 ~]# cd jenkins #2.编写Dockerfile
[root@ip-10-0-12-212 jenkins]# vim Dockerfile
#Is my first jenkins Dockerfile
# Version 1.0 # Base images 基础镜像
FROM centos:7 #MAINTAINER 维护者信息
MAINTAINER Jin.Hui #ADD 文件放在当前目录下,拷过去会自动解压
ADD jdk-8u131-linux-x64.tar.gz /opt/
COPY epel-release-latest-7.noarch.rpm /opt/
COPY jenkins-2.249.3-1.1.noarch.rpm /opt/ #RUN 执行以下命令
RUN rpm -ivh /opt/epel-release-latest-7.noarch.rpm \
&& rpm -ivh /opt/jenkins-2.249.3-1.1.noarch.rpm \
&& ln -s /opt/jdk1.8.0_131 /opt/jdk COPY jenkins /etc/sysconfig/jenkins #ENV 设置环境变量
ENV JAVA_HOME /opt/jdk
ENV PATH $JAVA_HOME/bin:$PATH #VILUME 用于指定持久化目录
VOLUME ["/var/lib/jenkins"] #EXPOSE 映射端口
EXPOSE 8080
EXPOSE 50000 #CMD 运行以下命令
CMD java -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war
#3.上传相关配置文件
[root@ip-10-0-12-212 jenkins]# rz
[root@ip-10-0-12-212 jenkins]# ll
total 246844
-rw-r--r-- 1 root root 820 Oct 19 15:36 Dockerfile
-rw-r--r-- 1 root root 15608 Oct 19 11:30 epel-release-latest-7.noarch.rpm
-rw-r--r-- 1 root root 185540433 Oct 18 15:25 jdk-8u131-linux-x64.tar.gz
-rw------- 1 root root 3113 Oct 18 17:37 jenkins
-rw-r--r-- 1 root root 67200896 Nov 5 2020 jenkins-2.249.3-1.1.noarch.rpm

三、构建Dockerfile

[root@ip-10-0-12-212 jenkins]# docker build --no-cache -t datalake_jenkins:v1 .
... ...
Successfully built 1e2736247512
Successfully tagged datalake_jenkins:v1

四、运行Docker容器

#1.运行Jenkins
[root@ip-10-0-12-212 jenkins]# docker run -d --name datalake_jenkins -p 10240:8080 -p 10241:50000 datalake_jenkins:v1
517aa3befbca0d9bfc1558c1d4fd4d5b3e0f4bfed6264c22b05254e8b2efb535 #2.查看Docker进程
[root@ip-10-0-12-212 jenkins]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
517aa3befbca datalake_jenkins:v1 "/bin/sh -c 'java -D…" 8 seconds ago Up 6 seconds 0.0.0.0:10240->8080/tcp, :::10240->8080/tcp, 0.0.0.0:10241->50000/tcp, :::10241->50000/tcp datalake_jenkins

五、验证Jenkins

#1.查看持久化存储
[root@ip-10-0-12-212 jenkins]# docker volume ls
DRIVER VOLUME NAME
local 0cdee244e8f9bb50d0b6bfd34bf2bd0718235bcacca266d74747ae5a9618b2b0 #2.删除没有镜像使用的存储
[root@ip-10-0-12-212 jenkins]# docker volume rm $(docker volume ls -qf dangling=true) #3.查看持久化存储位置
[root@ip-10-0-12-212 jenkins]# docker inspect 517aa3befbca |grep Source
"Source": "/data/docker/volumes/0cdee244e8f9bb50d0b6bfd34bf2bd0718235bcacca266d74747ae5a9618b2b0/_data", #4.查看持久化存储数据
[root@ip-10-0-12-212 jenkins]# cd /data/docker/volumes/0cdee244e8f9bb50d0b6bfd34bf2bd0718235bcacca266d74747ae5a9618b2b0/_data
[root@ip-10-0-12-212 _data]# ll
total 32
-rw-r--r-- 1 root root 1640 Oct 19 17:02 config.xml
-rw-r--r-- 1 root root 156 Oct 19 17:01 hudson.model.UpdateCenter.xml
-rw------- 1 root root 1712 Oct 19 17:01 identity.key.enc
-rw-r--r-- 1 root root 7 Oct 19 17:01 jenkins.install.UpgradeWizard.state
-rw-r--r-- 1 root root 171 Oct 19 17:01 jenkins.telemetry.Correlator.xml
drwxr-xr-x 2 root root 6 Oct 19 17:01 jobs
drwxr-xr-x 3 root root 19 Oct 19 17:01 logs
-rw-r--r-- 1 root root 907 Oct 19 17:01 nodeMonitors.xml
drwxr-xr-x 2 root root 6 Oct 19 17:01 nodes
drwxr-xr-x 2 root root 6 Oct 19 17:01 plugins
-rw-r--r-- 1 root root 64 Oct 19 17:01 secret.key
-rw-r--r-- 1 root root 0 Oct 19 17:01 secret.key.not-so-secret
drwx------ 4 root root 265 Oct 19 17:01 secrets
drwxr-xr-x 2 root root 67 Oct 19 17:02 updates
drwxr-xr-x 2 root root 24 Oct 19 17:01 userContent
drwxr-xr-x 3 root root 56 Oct 19 17:01 users
drwxr-xr-x 11 root root 4096 Oct 19 17:01 war #5.WEB页面登录访问
http://52.82.80.128:10240

六、安装Jenkins

#1.解锁Jenkins,找到Jenkins初始密码,输入此密码,点击继续
[root@ip-10-0-12-212 _data]# cat secrets/initialAdminPassword
5900733b0c184e8f80b0650b8137cc9b

#2.选择安装推荐的插件

#3.填入相应的管理用户信息,点击保存并完成。

#4.配置此处Jenkins的URL。

#5.此处Jenkins已经安装就绪,点击开始使用Jenkins。

#6.此处已经进入Jenkins页面,右下角显示安装的版本号,至此Jenkins安装完毕。

第十一章 Dockerfile安装Jenkins-2.249.3-1.1的更多相关文章

  1. CentOS7安装CDH 第十一章:离线升级CDH版本

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  2. 《Django By Example》第十一章 中文 翻译 (个人学习,渣翻)

    第十一章 缓存内容 (译者 @ucag 注:这是倒数第二章,最后一个项目即将完成. @夜夜月 将会接过翻译的最后一棒.这本书的翻译即将完成.这也是我翻译的最后一章,作为英语专业的学生,我对于翻译有了更 ...

  3. 使用Docker安装Jenkins

    Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 环境准备 腾讯云 硬件配置: ...

  4. 使用 docker-compose 快速安装Jenkins

    本文分享在 docker 环境中,使用 docker-compose.yml 快速安装 Jenkins,以及使用主机中的 docker 打包推送镜像到阿里云 博客园的第100篇文章达成,2019的第一 ...

  5. Docker的安装以及使用Docker安装jenkins,gogs,tomcat(一)

    (1)Docker的安装  官网安装链接 :https://yeasy.gitbooks.io/docker_practice/content/ 卸载旧版本 旧版本的 Docker 称为 docker ...

  6. Linux Docker安装Jenkins

    安装环境 操作系统 centos7.3 安装Docker,安装及配置见 <Docker之Docker介绍及安装配置> 安装Jenkins 下载Jenkins 命令:sudo docker ...

  7. 第十一章、认识与学习 BASH

    第十一章.认识与学习 BASH 1. 认识 BASH 这个 Shell 1.1 硬件.核心与 Shell 1.2 为何要学文字接口的 shell 1.3 系统的合法 shell 与 /etc/shel ...

  8. 《图解HTTP》阅读笔记--第十一章针对web的攻击技术

    第十一章.针对WEB的攻击技术 ----<图解HTTP>阅读笔记攻击目标---Web简单的HTTP协议本身并不存在安全性 问题,协议本身并不会成为被攻击的对象,应用HTTP的服务器和客户端 ...

  9. python 教程 第二十一章、 扩展Python

    第二十一章. 扩展Python /* D:\Python27\Lib\Extest-1.0\Extest2.c */ #include <stdio.h> #include <std ...

随机推荐

  1. i++ ++i 理解

    i++与++i怎么运算,解决办法: i++规则是在表达式中先取i的值使用,后让i的值变化成加1后的值. 举例:如在式中 j=i++,他就会变成这样的两步,第一步先执行j=i,第二步执行i=i+1. + ...

  2. 前端搭建Linux云服务器,Nginx配置详解及部署自己项目到服务器上

    目录 搭建Linux云服务器 购买与基本配置 链接linux服务器 目录结构 基本命令 软件安装 Linux 系统启动 启动过程 运行级别 Nginx详解 1.安装 方式一:yum安装 方式二:自定义 ...

  3. noip模拟29

    这次终于是早上考试了 早上考试手感不错,这次刷新了以前的最高排名- %%%cyh巨佬 \(rk1\) %%%CT巨佬 \(t2\) 90 纵观前几,似乎我 \(t3\) 是最低的-- 总计挂分10分, ...

  4. Spring AOP Aspect的简单实现(基于XML)

    第一步:导包 第二步:实现类和切面类 Service("userService")public class IUserviceImpl implements IUserServic ...

  5. C#取汉字首字母,汉字全拼

    使用类库为 https://gitee.com/kuiyu/dotnetcodes/tree/master/DotNet.Utilities/%E6%B1%89%E5%AD%97%E8%BD%AC%E ...

  6. XML基础——extensible markup language

    一.xml概念 1.xml和html区别 其中,xml是纯文本文件,跨语言:浏览器有html解析器也有xml解析器: 2.和properties配置文件区别 二.xml语法 1.基本语法 三.xml组 ...

  7. ecshop二次开发秒杀、限时折扣、清仓等功能

    限时抢购,秒杀商品的二次开发 1,先在后台admin/templates 中找goods_info.htm文件到促销部分,改为一个下拉列表的分别是促销,限时,秒杀,值分别是1,2,3这样,代码如下: ...

  8. ecshop调用商品的购买次数方法

    这时候我们修改一下 写成一个函数放到lib_goods.php 这样就可以随便调用了 --------------------------------------------------------- ...

  9. Java中的三大特性:封装、继承、多态

    封装: 概念:封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问,适当的封装可以让代码更容易理解与维护,也加强了代码的安全性. 原则:将属性隐藏起来,若需要访问某个属性,提供公共方法对 ...

  10. Jmeter系列(2)- 代理服务器录制脚本

    操作步骤 step-1 添加代理服务器 step-2 添加线程组 step-3 添加录制控制器 HTTP代理服务器配置 - HTTP(S) Test Script Recorder TestPlan ...