docker 安装jenkins

有人说不建议在docker安装jenkins,我觉得也是,本文还是练习下

官网
https://jenkins.io/

文档
https://jenkins.io/doc/
中文文档
https://jenkins.io/zh/doc/

下载
https://jenkins.io/download/

Jenkins项目产生两个发布线,LTS和每周。 根据您组织的需求,可能优先于另一个。
两个版本行都以.war文件,本机包,安装程序和Docker容器的形式分发。 带齿轮图标的包裹由第三方维护。

LTS(长期支持)版本每12周从常规版本流中选择,作为该时间段的稳定版本。
每周都会发布一个新版本,为用户和插件开发人员提供错误修复和功能。

本文安装lts版

docker pull jenkins/jenkins:lts

docker pull失败,总超时,

配置registry-mirrors

网上很多说配置为https://registry.docker-cn.com,根本不管用

[root@centos75-1 ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

使用阿里云的registry-mirrors

https://www.aliyun.com
登录阿里云
产品--开发与运维--代码托管、仓库--容器与镜像服务
管理控制台


我的配置
{
  "registry-mirrors": ["https://********.mirror.aliyuncs.com","https://registry.docker-cn.com"],
  "dns": ["180.76.76.76","114.114.114.114"]
}

阿里云就是他妈的快

重启docker服务

[root@centos75-1 ~]# systemctl daemon-reload
[root@centos75-1 ~]# systemctl restart docker

docker pull jenkins/jenkins:lts

docker run -d -p 8002:8080 --name my-jenkins jenkins/jenkins:lts (启动失败?)

docker ps -a
docker logs -f jenkins
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied

https://segmentfault.com/a/1190000008618462
需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000,(或者修改目录权限为777)
chown -R 1000 /data/dockerhome/jenkins_home (这条就行)
chown -R 1000:1000 /data/dockerhome/jenkins_home
 

这时就可以访问了http://192.168.103.205:8002/


docker cp jenkins:/var/jenkins_home /data/dockerhome (把jenkins_home考到宿主机,我这么用)

docker stop jenkins
#docker rm $(sudo docker ps -a -q)(谨慎使用)
docker run -d -p 8002:8080 -v /data/dockerhome/jenkins_home:/var/jenkins_home --name jenkins jenkins/jenkins:lts

查看一些系统信息

[root@centos75-1 ~]# docker exec -it jenkins /bin/bash(进入docker)

jenkins@17cb458feeac:/$ cat /etc/issue
Debian GNU/Linux 9 \n \l
jenkins@17cb458feeac:/$ java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1~deb9u1-b01)
OpenJDK 64-Bit Server VM (build 25.212-b01, mixed mode)

jenkins@17cb458feeac:/$ git --version (这个自带了)
git version 2.11.0

jenkins@17cb458feeac:/$ mvn -version
bash: mvn: command not found

通过Dockerfile制作镜像,添加jdk8,maven

jenkins内要使用docker,使用宿主机的。实际上jdk8,maven也可以用宿主机的。启动时把目录映射进去就行。

解决docker容器安装jenkins后无法使用宿主机docker、jdk、maven命令的问题
https://blog.csdn.net/weixin_43577800/article/details/84844438

安装libltdl.so.7 ,是为了jenkins使用docker命令时不会报错

/usr/lib64/libltdl.so.7

Dockerfile

FROM jenkins/jenkins:lts
MAINTAINER happyqing
USER root

#remove openjdk
RUN apt-get purge openjdk*  -y

#add libltdl.so.7
ADD libltdl.so.7 /usr/lib/x86_64-linux-gnu
#RUN apt-get update && apt-get install -y libltdl7 && apt-get update

#set charset timezone
ENV LANG=zh_CN.UTF-8
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

#install jdk8
ADD jdk-8u192-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_192
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
ENV PATH $JAVA_HOME/bin:$PATH

#install maven
ADD apache-maven-3.6.1-bin.tar.gz /usr/local
ENV MAVEN_HOME /usr/local/apache-maven-3.6.1
ENV PATH $MAVEN_HOME/bin:$PATH

#USER jenkins

Dockerfile文件详解
https://www.cnblogs.com/panwenbin-logs/p/8007348.html

相应文件准备好

 

构建镜像

cd /data/Dockerfile/jenkins-jdk8-maven

docker build --no-cache -t jenkins-jdk8-maven:1.0 .

运行镜像

docker run -d -p 8002:8080 --name my-jenkins -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /data/dockerhome/jenkins_home:/var/jenkins_home jenkins-jdk8-maven:1.0

查看信息

[root@centos75-1 jenkins-jdk8-maven]# docker exec -it my-jenkins /bin/bash
jenkins@859f60339d85:/$ java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
jenkins@859f60339d85:/$ git --version
git version 2.11.0
jenkins@859f60339d85:/$ mvn -version
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: /usr/local/apache-maven-3.6.1
Java version: 1.8.0_192, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_192/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"

查看日志

[root@centos75-1 jenkins-jdk8-maven]# docker logs -f my-jenkins

删除image
docker rmi imageID
docker images rm imageID

批量删除某个REPOSITORY下的iamge
docker images | awk '/none/{print "docker rmi "$3}' | bash
docker images | awk '/jenkins-jdk8-maven/{print "docker rmi "$3}' | bash

docker 配置jenkins
https://blog.csdn.net/haveqing/article/details/89679327

参考:

Docker命令详解(run篇)
https://mp.csdn.net/postedit

Dockerfile文件详解
https://www.cnblogs.com/panwenbin-logs/p/8007348.html

解决docker容器安装jenkins后无法使用宿主机docker、jdk、maven命令的问题
https://blog.csdn.net/weixin_43577800/article/details/84844438

Docker安装Jenkins
https://my.oschina.net/u/3269534/blog/1831317?from=groupmessage

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值