对于如何备份 Jenkins 除了用 Jenkins 插件来定期备份之外,如果把 Jenkins 安装到 Docker 里,定期备份一个 Docker Image 最后传到 Artifactory 中,也是一个不错的方案。
安装 Docker 版 Jenkins
在 CentOS 上安装 Docker 版 Jenkins,这里推荐用 Long-term Support (LTS) 版本,可以从 Jenkins 官网下载。
# 下载指定 lts 版本 2.130 |
启动成功后即可打开 http://hostname:8080/ 网址
修改登录密码
显示所有的 image 以及正在运行的 container
# 列出来所有 image |
建议登录之后,修改 admin 密码,方便下次登录
sudo docker commit 39bc7a8307d9 myjenkins:v0.1 |
将宿主机目录映射到 Jenkins Docker 中
如果想让 Docker 里的 Jenkins 可以访问宿主机的目录,在运行 docker 时使用 -v 参数进行 mount volume
sudo docker run -p 8080:8080 -p 50000:50000 --name mydata -v /data/backup:/home/backup jenkins/jenkins:2.130 |
将 Jenkins Docker Image 保存在 Artifactory
下载并安装 Artifactory 企业版或是 JFrog Container Registry,注意 Artifactory Open Source 版本不支持 Docker Registry。
例如我的 JFrog Container Registry 是:dln.dev.mycompany.com:8040,并创建了一个 docker repository 叫 docker-local。
上传 Docker Image 一共分为三步:
docker login
# 在登录前需要添加如下配置到 /etc/docker/daemon.json |
docker tag
# docker tag <IMAGE_ID> artprod.mycompany/<DOCKER_REPOSITORY>:<DOCKER_TAG>, example below: |
docker push
# docker push artprod.mycompany/<DOCKER_REPOSITORY>:<DOCKER_TAG>, example below: |
登录 JFrog Container Registry 刷新就可以到已经上次的 Image 了。说明:截图是我上传的另外一个镜像 ubuntu:15.10