温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用docker构建jenkins镜像并运行容器

发布时间:2021-07-27 22:23:08 来源:亿速云 阅读:193 作者:chen 栏目:云计算

如何使用Docker构建Jenkins镜像并运行容器

在现代软件开发中,持续集成和持续交付(CI/CD)已经成为不可或缺的一部分。Jenkins作为一款开源的自动化服务器,广泛应用于CI/CD流程中。而Docker作为一种轻量级的容器化技术,能够帮助开发者快速构建、部署和运行应用程序。本文将详细介绍如何使用Docker构建Jenkins镜像并运行容器。

1. 准备工作

在开始之前,确保你已经安装了Docker。如果还没有安装,可以参考Docker官方文档进行安装。

2. 创建Dockerfile

Dockerfile是一个文本文件,包含了一系列指令,用于构建Docker镜像。我们将通过Dockerfile来构建一个包含Jenkins的镜像。

首先,创建一个新的目录,并在该目录下创建一个名为Dockerfile的文件:

mkdir jenkins-docker cd jenkins-docker touch Dockerfile 

接下来,编辑Dockerfile文件,添加以下内容:

# 使用官方的Jenkins镜像作为基础镜像 FROM jenkins/jenkins:lts # 设置环境变量 ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false" # 安装必要的插件 RUN /usr/local/bin/install-plugins.sh git workflow-aggregator docker-workflow blueocean # 切换到root用户 USER root # 安装Docker客户端 RUN apt-get update && apt-get install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - RUN add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/debian \ $(lsb_release -cs) \ stable" RUN apt-get update && apt-get install -y docker-ce-cli # 切换回Jenkins用户 USER jenkins # 暴露Jenkins的默认端口 EXPOSE 8080 # 暴露Jenkins的默认JNLP端口 EXPOSE 50000 # 设置Jenkins的默认工作目录 VOLUME /var/jenkins_home # 启动Jenkins CMD ["jenkins.sh"] 

2.1 解释Dockerfile

  • FROM jenkins/jenkins:lts:使用官方的Jenkins LTS(长期支持)版本作为基础镜像。
  • ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false":设置环境变量,跳过Jenkins的初始设置向导。
  • RUN /usr/local/bin/install-plugins.sh git workflow-aggregator docker-workflow blueocean:安装常用的Jenkins插件,包括Git、Pipeline、Docker Pipeline和Blue Ocean。
  • USER root:切换到root用户,以便安装Docker客户端。
  • RUN apt-get update && apt-get install -y ...:安装Docker客户端所需的依赖项。
  • USER jenkins:切换回Jenkins用户,以确保Jenkins以非root用户运行。
  • EXPOSE 8080:暴露Jenkins的默认HTTP端口8080。
  • EXPOSE 50000:暴露Jenkins的默认JNLP端口50000。
  • VOLUME /var/jenkins_home:将Jenkins的工作目录挂载为卷,以便持久化数据。
  • CMD ["jenkins.sh"]:启动Jenkins。

3. 构建Docker镜像

Dockerfile所在的目录下,运行以下命令来构建Docker镜像:

docker build -t my-jenkins . 

该命令会根据Dockerfile中的指令构建一个名为my-jenkins的镜像。构建过程可能需要一些时间,具体取决于网络速度和系统性能。

4. 运行Jenkins容器

镜像构建完成后,可以使用以下命令来运行Jenkins容器:

docker run -d -p 8080:8080 -p 50000:50000 --name jenkins -v jenkins_home:/var/jenkins_home my-jenkins 

4.1 解释命令

  • -d:以守护进程模式运行容器。
  • -p 8080:8080:将主机的8080端口映射到容器的8080端口。
  • -p 50000:50000:将主机的50000端口映射到容器的50000端口。
  • --name jenkins:为容器指定一个名称,这里命名为jenkins
  • -v jenkins_home:/var/jenkins_home:将主机的jenkins_home卷挂载到容器的/var/jenkins_home目录,以便持久化Jenkins的数据。
  • my-jenkins:指定要运行的镜像名称。

5. 访问Jenkins

容器启动后,可以通过浏览器访问Jenkins。打开浏览器,输入http://localhost:8080,你将看到Jenkins的登录页面。

由于我们在Dockerfile中设置了JAVA_OPTS环境变量,跳过了初始设置向导,因此你可以直接使用Jenkins。

6. 配置Jenkins

6.1 安装插件

虽然我们在Dockerfile中已经安装了一些常用插件,但你仍然可以根据需要安装其他插件。进入Jenkins的管理界面,点击“Manage Jenkins” -> “Manage Plugins”,然后选择“Available”选项卡,搜索并安装所需的插件。

6.2 配置Docker

由于我们在容器中安装了Docker客户端,你可以在Jenkins中配置Docker,以便在Pipeline中使用Docker命令。进入Jenkins的管理界面,点击“Manage Jenkins” -> “Configure System”,找到“Cloud”部分,配置Docker的相关设置。

7. 持久化数据

在运行Jenkins容器时,我们使用了-v jenkins_home:/var/jenkins_home选项,将Jenkins的数据目录挂载到主机的jenkins_home卷中。这样,即使容器被删除或重新创建,Jenkins的数据仍然会保留。

8. 停止和删除容器

如果你需要停止Jenkins容器,可以使用以下命令:

docker stop jenkins 

如果需要删除容器,可以使用以下命令:

docker rm jenkins 

9. 总结

通过本文的介绍,你已经学会了如何使用Docker构建Jenkins镜像并运行容器。Docker的轻量级和可移植性使得Jenkins的部署和管理变得更加简单和高效。希望本文对你有所帮助,祝你在CI/CD的旅程中取得成功!


参考文档:

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI