官方 Jenkins Docker 镜像
Docker Hub 上提供的 Jenkins 持续集成和交付服务器。
这是一个功能齐全的 Jenkins 服务器。 https://jenkins.io/。
拉取镜像
要使用最新的 LTS: docker pull jenkins/jenkins:lts-jdk11
要使用每周更新: docker pull jenkins/jenkins:jdk11
用法
docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts-jdk11
注意:阅读下面的连接代理部分,了解50000
端口映射的作用。
这会将工作区存储在/var/jenkins_home
. 所有 Jenkins 数据都存在于其中 - 包括插件和配置。您可能希望将其设置为显式卷,以便您可以对其进行管理并附加到另一个容器进行升级:
docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11
这将在主机上自动创建一个 ‘jenkins_home’ docker卷。即使容器停止、启动或删除,Docker 卷也会保留其内容。
注意:避免使用从主机上的文件夹绑定安装到/var/jenkins_home
,因为这可能会导致文件权限问题(容器内使用的用户可能没有主机上文件夹的权限)。如果确实需要绑定挂载 jenkins_home,请确保容器内的 jenkins 用户可以访问主机上的目录(jenkins 用户 - uid 1000)或使用-u some_other_user
参数 with docker run
。
docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts-jdk11
这将在分离模式下运行 Jenkins,并添加端口转发和卷。您可以使用命令“docker logs CONTAINER_ID”访问日志以检查第一个登录令牌。容器的 ID 将从上述命令的输出中返回。
备份数据
如果您在卷中绑定安装 - 您可以随时简单地备份该目录(即 jenkins_home)。
这是强烈推荐的。像对待数据库一样对待 jenkins_home 目录——在 Docker 中,你通常会将数据库放在一个卷上。
如果您的卷在容器内 - 您可以使用docker cp $ID:/var/jenkins_home
命令来提取数据,或使用其他选项来查找卷数据的位置。请注意,某些操作系统上的某些符号链接可能会转换为副本(这可能会将 jenkins 与 lastStableBuild 链接等混淆)
有关更多信息,请查看有关使用卷的Docker 文档部分