docker 搭建 jenkins

本贴最后更新于 640 天前,其中的信息可能已经沧海桑田

前提环境

Linux 系统、docker 环境、maven、git、jdk

步骤

一、使用 docker 拉取 jenkins 镜像
  1. docker search jenkins
    
  2. docker pull jenkins/jenkins 
    
  3. 查看本地镜像
    docker images
    
二、在宿主机创建 jenkins 挂载目录并授权
  1. # 目录自定义
    mkdir -p /home/local/jenkins_home
    chmod 777 /home/local/jenkins_home
    
三、启动 jenkins 镜像
  1. docker run --name myjenkins -p 9995:8080 -p 50001:50000 \
    --restart=always -u root \
    -v /var/run/docker.sock:/var/run/docker.sock  \
    -v $(which docker):/bin/docker \
    -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 \
    -v /var/lib/docker/tmp:/var/lib/docker/tmp \
    -v /home/local/jenkins_home:/var/jenkins_home \
    -v /etc/localtime:/etc/localtime \
    -v /usr/local/maven/apache-maven-3.8.6:/usr/local/maven \
    -d jenkins:1.25.5
    
上述命令说明:
1. --restart=always #Docker重启后该容器也为随之重启
2. -u root          
    #以root的身份去运行镜像(避免在容器中调用Docker命令没有权限)
    #最好使用docker用户去运行
3. -v $(which docker):/bin/docker
    #将宿主机的docker命令挂载到容器中
    #可以使用which docker命令查看具体位置
4. -v /var/run/docker.sock:/var/run/docker.sock
#容器中的进程可以通过它与Docker守护进程进行通信
5. -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
6. -v /home/local/jenkins_home:/var/jenkins_home
#将运行的docker镜像目录挂载到本地的/home/local/jenkins_home目录
7. -v /usr/local/maven/apache-maven-3.8.6:/usr/local/maven
#将本地的maven拷贝到镜像对应目录
8. -v /etc/localtime:/etc/localtime
#保持镜像和宿主机时间一致
9. -d #后台运行镜像 
  1. 运行上述命令,查看 jenkins 容器日志,是否启动成功
    docker logs -f 容器id/名称
    
  2. 进入镜像
    docker exec -it 容器id/名称
    
  3. 在容器中运行以下命令,如果没出错,成功一半了
    docker ps 
    ls
    
四、配置 jenkins
  1. 在日志中找到密码,复制输入下一步,安装推荐的插件,直到配置完成。
  2. 后续就是全局配置,需要中文的可以下载插件,之后指定位置输入 zh_CN , 切换中文
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    476 引用 • 899 回帖
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    51 引用 • 37 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...