docker 安装jenkins

简介: docker 安装jenkins ,并可以执行宿主机的docker命令,打包docker镜像,并将镜像推送到Registry

1、挂载目录授权
当映射本地数据卷时,/data/jenkins_home目录的拥有者为root用户,而容器中jenkins user的uid为1000
执行如下命令即可:

chown -R 1000:1000 /data/jenkins_home

2、启动容器

docker run -it -d  \
--restart=always -u root \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 \
--privileged=true --name jenkins -p 8081:8080  \
 -v /data/jenkins_home:/var/jenkins_home \
 -v /usr/local/apache-maven-3.5.4:/var/apache-maven-3.5.4\
 -v /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java jenkins/jenkins:lts 

参数说明:

--restart=always #Docker重启后该容器也为随之重启
 
 -u root          
#以root的身份去运行镜像(避免在容器中调用Docker命令没有权限)
#最好使用docker用户去运行

-v /usr/bin/docker:/usr/bin/docker
#将宿主机的docker命令挂载到容器中
#可以使用which docker命令查看具体位置
#或者把挂载的参数改为: -v $(which docker):/usr/bin/docker

-v /var/run/docker.sock:/var/run/docker.sock
#容器中的进程可以通过它与Docker守护进程进行通信

-v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
#libltdl.so.7是Docker命令执行所依赖的函数库
#容器中library的默认目录是 /usr/lib/x86_64-linux-gnu/
#把宿主机的libltdl.so.7 函数库挂载到该目录即可
#可以通过whereis libltdl.so.7命令查看具体位置
#centos7位置/usr/lib64/libltdl.so.7
#ubuntu位置/usr/lib/x86_64-linux-gnu/libltdl.so.7

3、彻底解决jenkins换更新源无效的问题

3.1、安装Jenkins镜像适配器插件
离线下载并安装localization-zh-cn插件,下载地址:http://mirrors.jenkins-ci.org/plugins/localization-zh-cn/

3.2、通过Jenkins镜像适配器插件修改镜像源
Jenkins镜像适配器插件安装完成后,Jenkins系统右下角会出现“Jenkins中文社区”链接。点击链接进入配置页面,按照下图标示顺序进行配置。
111.png

3.3、修改镜像源地址
http://ip:port/pluginManager/advanced
在设置更新中心地址页面,修改升级站点URL为刚才复制的地址。

222.png

3.4、下载测试插件进行测试
进入插件管理中的 可选插件 随意选择一个插件进行安装,查看插件下载度。
4、配置

4.1 Java

/usr/local/openjdk-8
4.2 maven
/var/apache-maven-3.5.4
5、打包镜像上传至镜像仓库
5.1 配置对私有仓库的可信任,并配置默认的镜像仓库为阿里云仓库,配置镜像加速器

vi /etc/docker/daemon.json
{
  "registry-mirrors": ["https://joui7daz.mirror.aliyuncs.com"],
  "insecure-registries": ["registry.cn-beijing.aliyuncs.com:5000"]
}

上述地址根据实际情况修改
重启:systemctl restart docker
5.2 Jenkins Post Steps

cd ${WORKSPACE}/shop-admin
docker build -t admin .
docker login --username=xxx -p xxx registry.cn-beijing.aliyuncs.com
docker tag [ImageId] registry.cn-beijing.aliyuncs.com/zysdemo/test:[镜像版本号]
 docker push registry.cn-beijing.aliyuncs.com/zysdemo/test:[镜像版本号]

注意在shop-admin目录下要有Dockerfile

FROM anapsix/alpine-java:8_server-jre_unlimited

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN mkdir -p /opt/projects/mall

WORKDIR /opt/projects/mall

ADD ./target/shop-admin-0.0.1-SNAPSHOT.jar ./

EXPOSE 8080

CMD java -jar -Xms512m -Xmx512m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -Dspring.profiles.active=docker,quartz ./shop-admin-0.0.1-SNAPSHOT.jar
目录
相关文章
|
2月前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
368 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
28天前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
66 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
57 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
36 3
|
2月前
|
监控 虚拟化 Docker
Window系统安装Docker
这篇文章提供了在Windows系统上安装与配置Docker的详细指南,包括Docker Desktop的安装及通过Docker来运行容器化应用的步骤。
133 1
Window系统安装Docker
|
2月前
|
存储 物联网 数据安全/隐私保护
Docker安装Mosquitto
这篇文章详细介绍了如何在Docker中安装和配置Mosquitto消息代理服务,包括拉取镜像、创建容器以及配置持久化存储等步骤。
97 0
Docker安装Mosquitto
|
2月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
279 3
|
2月前
|
监控 jenkins 持续交付
Docker和Jenkins有什么不同
【10月更文挑战第18天】Docker和Jenkins有什么不同
|
18天前
|
Docker 容器
【赵渝强老师】使用二进制包方式安装Docker
本文介绍了在企业生产环境中无法直接访问外网时,如何使用Docker官方提供的二进制包进行Docker的离线安装。文章详细列出了从安装wget、下载Docker安装包、解压、复制命令到启动Docker服务的具体步骤,并提供了相关命令和示例图片。最后,还介绍了如何设置Docker为开机自启模式。
|
18天前
|
缓存 Ubuntu Linux
如何安装Docker
如何安装Docker
99 0