安装Jenkins

安装Jenkins

Docker

Docker是一个在称为“容器”(或Docker容器)的孤立环境中可运行应用程序的平台。

像Jenkins这样的应用程序可以作为只读的“镜像”(或Docker镜像)下载,

每个镜像都作为容器在Docker中运行。Docker容器实际上是Docker镜像的“运行实例”。

从这个角度来看,镜像永久存储(只要镜像更新发布),而容器暂时存储。

在Docker文档的入门指南,Getting Started, Part 1: Orientation

and setup页面中阅读有关这些概念的更多信息 。

Docker的基础平台和容器设计意味着可以在任何支持的操作系统(macOS,Linux和Windows)

或云服务(AWS和Azure)上运行单个Docker镜像(对于任何给定的应用程序,如Jenkins)。

安装Docker

要在您的操作系统上安装Docker,请访问 Docker

store网站并单击适用于您的操作系统或云服务的*Docker Community Edition*框。

按照其网站上的安装说明进行操作。

Jenkins也可以在Docker企业版上运行,您可以通过 Docker商店网站上的*Docker EE*访问它。

[ CAUTION]

如果您要在基于Linux的操作系统上安装Docker,请确保配置Docker,以便它可以作为非root用户进行管理。

在Docker的Post-installation

steps for Linux网页中了解更多关于它 的文档。

如何将Docker配置为默认启动的方式也可在此文档中查找。

在Docker中下载并运行Jenkins

几个可用的Jenkins Docker镜像.

建议使用的Docker映像是jenkinsci/blueocean image(来自 the Docker Hub repository)。

该镜像包含当前的长期支持 (LTS) 的Jenkins版本 (可以投入使用)

,捆绑了所有Blue Ocean插件和功能。这意味着你不需要单独安装Blue Ocean插件。

jenkinsci/blueocean每次发布Blue Ocean新版本时,都会发布新镜像。您可以在标签

page页上看到以前发布的镜像版本列表 。

您还可以使用其他Jenkins Docker镜像(在Docker Hub上可通过jenkins/jenkins获取)。

但是,这些不会随Blue Ocean的发布而提供,需要通过

Jenkins中的Manage Jenkins > Manage Plugins页面进行安装。

在Blue Ocean入门中了解更多信息。

在macOS和Linux上

打开一个终端窗口。

下载 jenkinsci/blueocean 镜像并使用以下docker run 命令将其作为Docker中的容器运行 :

docker run \

-u root \

--rm \ (1)

-d \ (2)

-p 8080:8080 \ (3)

-p 50000:50000 \ (4)

-v jenkins-data:/var/jenkins_home \ (5)

-v /var/run/docker.sock:/var/run/docker.sock \ (6)

jenkinsci/blueocean (7)

1

(可选) jenkinsci/blueocean 关闭时自动删除Docker容器(下图为实例)。如果您需要退出Jenkins,这可以保持整洁。

2

(可选)jenkinsci/blueocean 在后台运行容器(即“分离”模式)并输出容器ID。如果您不指定此选项,

则在终端窗口中输出正在运行的此容器的Docker日志。

3

映射(例如“发布”)jenkinsci/blueocean 容器的端口8080到主机上的端口8080。

第一个数字代表主机上的端口,而最后一个代表容器的端口。因此,如果您为此选项指定 -p

49000:8080 ,您将通过端口49000访问主机上的Jenkins。

4

(可选)将 jenkinsci/blueocean 容器的端口50000 映射到主机上的端口50000。

如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”),

则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。

您可以通过“ 配置全局安全性” 页面更改Jenkins主服务器上的端口号。如果您要将您的Jenkins主机的JNLP代理端口的TCP端口 值更改为51000(例如),那么您需要重新运行Jenkins(通过此 docker run …​命令)并指定此“发布”选项 -p 52000:51000,其中最后一个值与Jenkins master上的这个更改值相匹配,第一个值是Jenkins主机的主机上的端口号,

通过它,基于JNLP的Jenkins代理与Jenkins主机进行通信 - 例如52000。

5

(可选,但强烈建议)映射在容器中的`/var/jenkins_home` 目录到具有名字 jenkins-data

的volume。

如果这个卷不存在,那么这个 docker run 命令会自动为你创建卷。

如果您希望每次重新启动Jenkins(通过此 docker run ... 命令)时保持Jenkins状态,则此选项是必需的 。

如果你没有指定这个选项,那么在每次重新启动后,Jenkins将有效地重置为新的实例。

注意:

所述的 jenkins-data 卷也可以 docker

volume create命令创建:

docker volume create jenkins-data

代替映射 /var/jenkins_home 目录转换为Docker卷,还

可以将此目录映射到计算机本地文件系统上的目录。

例如,指定该选项 -v $HOME/jenkins:/var/jenkins_home 会将容器的 /var/jenkins_home 目录映射 到 本地计算机上目录中的 jenkins 子目录,

该$HOME目录通常是 /Users//jenkins 或`/home//jenkins` 。

6

(可选 /var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字。

该映射允许 jenkinsci/blueocean 容器与Docker守护进程通信,

如果 jenkinsci/blueocean 容器需要实例化其他Docker容器,则该守护进程是必需的。

如果运行声明式管道,其语法包含agent部分用 docker

例如, agent { docker { ... } } 此选项是必需的。

在Pipeline Syntax 页面上阅读更多关于这个的信息 。

7

jenkinsci/blueocean Docker镜像本身。如果此镜像尚未下载,则此 docker run 命令

将自动为您下载镜像。此外,如果自上次运行此命令后发布了此镜像的任何更新,

则再次运行此命令将自动为您下载这些已发布的镜像更新。

注意:这个Docker镜像也可以使用以下

docker pull命令独立下载(或更新) : docker pull jenkinsci/blueocean

注意: 如果复制并粘贴上面的命令片段不起作用,请尝试在此处复制并粘贴此无注释版本:

docker run \

-u root \

--rm \

-d \

-p 8080:8080 \

-p 50000:50000 \

-v jenkins-data:/var/jenkins_home \

-v /var/run/docker.sock:/var/run/docker.sock \

jenkinsci/blueocean

继续按照Post-installation setup wizard安装。

在Windows上

打开命令提示符窗口。

下载 jenkinsci/blueocean 镜像并使用以下

docker run

命令将其作为Docker中的容器运行 :

docker run ^

-u root ^

--rm ^

-d ^

-p 8080:8080 ^

-p 50000:50000 ^

-v jenkins-data:/var/jenkins_home ^

-v /var/run/docker.sock:/var/run/docker.sock ^

jenkinsci/blueocean

有关这些选项的解释,请参阅上面的在macOS和Linux上。

继续按照Post-installation setup wizard安装。

访问Jenkins / Blue Ocean Docker容器

如果您对Docker有一些经验,并且您希望或需要 jenkinsci/blueocean 通过

命令提示符通过终端/命令提示符访问docker exec

,则可以添加一个选项 --name jenkins-blueocean(如

docker run

所述),这会为 jenkinsci/blueocean

容器命名为 "jenkins-blueocean" 。

这意味着你可以使用如下命令访问容器(通过单独的终端/命令提示符窗口) :

docker exec -it jenkins-blueocean bash

通过Docker日志访问Jenkins控制台日志

您可能需要访问Jenkins控制台日志。例如,在解锁 Jenkins

作为安装后设置向导的一部分时。

如果没有指定分离模式选项 -d 与 docker run ... 命令以上,

那么Jenkins控制台日志是通过终端方便/命令从中运行此Docker命令提示符窗口。

否则,您可以通过访问Jenkins控制台日志

Docker logs中

的 jenkinsci/blueocean ,使用以下命令:

docker logs

Your can be obtained using the

docker ps

command. If you specified the

--name jenkins-blueocean option in the docker run ... command above (see

also

Accessing the Jenkins/Blue

Ocean Docker container), you can simply use the docker logs command:

您的 可以使用docker ps

命令获得 。如果您在上述 docker run ...`命令中指定了 `--name jenkins-blueocean

参数(请参阅访问Jenkins/Blue Ocean Docker容器)

,则只需使用以下 docker logs 命令:

docker logs jenkins-blueocean

访问Jenkins主目录

例如,您可能需要访问Jenkins主目录,以查看 workspace 子目录中Jenkins版本的详细信息。

如果您将Jenkins主目录( /var/jenkins_home )映射到您计算机

本地文件系统上的一个目录(如上面的 docker run ... 命令 ),

那么您可以通过计算机常用的终端/命令提示符访问此目录的内容。

否则,如果您在 docker run ... 命令里指定了 -v jenkins-data:/var/jenkins_home 选项,

则可以 jenkinsci/blueocean 使用以下 docker exec

命令通过容器的终端/命令提示符访问Jenkins主目录的内容:

docker exec -it bash

如上面所提到,

您的 可以使用来获得 docker ps

命令。如果您在 docker run ... 中指定了 --name jenkins-blueocean 该选项(也可参照

访问Jenkins / Blue Ocean Docker容器)),

则只需使用以下 docker exec 命令:

docker exec -it jenkins-blueocean bash

相关推荐