首页 > 其他分享 >docker启动gitlab 备份与恢复

docker启动gitlab 备份与恢复

时间:2024-03-06 15:33:58浏览次数:14  
标签:容器 GitLab 备份 gitlab docker backup

一、数据备份

进入容器 备份

docker exec -it gitlab /bin/bash
gitlab-rake gitlab:backup:create 

或者一条命令

docker exec gitlab gitlab-rake gitlab:backup:create

默认将备份文件保存至/var/opt/gitlab/backups/

这条命令是在 Docker 容器内部执行 GitLab 的备份操作。让我来解释一下这个命令的各个部分:
docker exec:这是 Docker 命令,用于在正在运行的容器内部执行命令。
gitlab:指定要操作的容器名称或 ID,即运行 GitLab 服务的容器。
gitlab-rake gitlab:backup:create:这部分是在 GitLab 容器内部执行的实际命令。具体来说:
gitlab-rake:是 GitLab 提供的用于管理数据库和执行其他任务的命令行工具。
gitlab:backup:create:是使用 gitlab-rake 工具创建 GitLab 数据库备份的命令。
通过执行这条命令,GitLab 将会在容器内部创建一个数据库备份。这样可以确保数据的安全性和可恢复性。

执行完会有一个警告

Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data 
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.

这个警告是在执行 GitLab 备份时提醒您,备份文件中不包含 `gitlab.rb` 和 `gitlab-secrets.json` 这两个文件,这两个文件包含了敏感数据,例如配置信息和加密密钥,因此在恢复备份时需要手动备份这两个文件。
为了确保完整的备份和恢复过程,请务必手动备份 `gitlab.rb` 和 `gitlab-secrets.json` 文件。

备份数据

docker cp gitlab:/var/opt/gitlab/backups/1709697433_2024_03_06_13.6.2_gitlab_backup.tar  /data/gitlab-bak/
docker cp gitlab:/etc/gitlab/gitlab.rb  /data/gitlab-bak/
docker cp gitlab:/etc/gitlab/gitlab-secrets.json  /data/gitlab-bak/

备份完成

二、数据的恢复

我们启动新的容器,然后将刚才备份的文件拷贝到容器里,后面两个文件直接覆盖即可

docker cp /data/gitlab-bak/1709697433_2024_03_06_13.6.2_gitlab_backup.tar  gitlab:/var/opt/gitlab/backups/
docker cp /data/gitlab-bak/gitlab-secrets.json   gitlab:/etc/gitlab/
docker cp /data/gitlab-bak/gitlab.rb   gitlab:/etc/gitlab/

拷贝完之后,我们进入容器,进入备份目录,执行如下命令

docker exec -it gitlab bash
gitlab-rake gitlab:backup:restore BACKUP=1709697433_2024_03_06_13.6.2

如果没有权限,则执行

chmod 777 文件名

恢复之后,我们重新加载配置,并重启gitlab

gitlab-ctl reconfigure 
gitlab-ctl restart 

标签:容器,GitLab,备份,gitlab,docker,backup
From: https://www.cnblogs.com/scfssq/p/18056742

相关文章

  • .NETCore文件上传将文件保存到docker容器以外的文件夹
    最近在开发一个文件服务,用于公司内容各应用的文件保存和查询获取。开发环境:windows10+.NETCore7.0+Mysql  发布环境:Liunx+Docker实现功能:文件服务提供接口上传文件和下载文件,服务用于内网访问。实现中遇到的问题:由于文件保存是用的系统自带文件服务。而部署环境是Liunx+Doc......
  • Dockerfile 部署uwsgi+nginx+django
    背景最近在和组内小伙伴一起写接口测试平台后端,使用的是drf框架,目前已经完成部分工作。在和前端联调试另一个小伙伴使用uwsgi部署起来了,我感觉这样部署很low,因为之前有了解过docker所以想着这一次彻底把docker给学会吧,于是就有了这篇文章。首先先看一下我的目录结构i......
  • etcd 数据库的备份和恢复
    在K8s中,很多etcd服务都是以容器的方式运行,比如使用rancher和kubeadm部署管理的容器等。由于kubeadm部署的etcd没有etcdctl命令,需要下载etcd二进制包。通过在宿主机上使用etcdctl操作容器中的etcd。1、etcdctl安装#wgethttps://github.com/etcd-io/etcd/releases/downl......
  • docker-部署mysql8,并映射数据目录和日志目录
    下载镜像dockerpullmysql:8.0.21在主机上准备目录mkdir-p/mysql8/data/mysql8/log  /mysql8/cnf编写配置文件[root@localhostcnf]#catmy.cnf[mysqld]datadir=/mysql/datalog-error=/mysql/log/mysql-log.logpid-file=/mysql/mysqld/mysqld.pids......
  • 极狐GitLab Runner Kubernetes(k8s)配置
    GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。资料Kubernetes高级配置添加额外主机别名Pod的DNS配置极狐GitLabRunner......
  • 离线部署docker-ce
    下载包删除或者备份原来的所有的yum源文件。然后添加阿里的yum源:wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo或者curl-o/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo更新:清除缓存......
  • 私有网盘服务dzzoffice备份脚本
    这里的备份脚本基于上一篇文章中记录的dzzoffice部署方式进行备份#!/bin/bash#备份网盘服务#备份路径BACKUP=/data/backup/#dzzoffice路径DZZOFFICE=/data/dzzofficeDATE=$(date+\%Y-\%m-\%d)#要备份的数据库,多个用空格分隔dblist=(dzzoffice)echo'开始执行备份......
  • Docker API 未授权访问
    DockerAPI未授权访问目录DockerAPI未授权访问1漏洞描述1.1Docker是什么?1.2Docker镜像和容器是什么?1.3什么是Dockerregistry?1.4什么是blobs?2漏洞危害3漏洞检测3.1检查registry版本4修复方案5来源1漏洞描述Docker是一种流行的容器技术,已被世界各地的行业所接受......
  • Docker数据库容器(四)
    前言前面都以Nginx容器为例,介绍很Docker容器的运用。但是对于数据库的容器,在创建的时候却涉及到了Docker的环境变量设置,这个对于很多项目都是非常重要的。所以这里单独深入了解这类型的容器创建。一、创建这里以Mysql容器为例,用之前Nginx的创建方式来创建容器。~]#d......
  • Mysql数据库安全和备份
    一、用户权限认证Mysql通过用户认证机制来和业务系统建立连接通道,当认证成功后,还需要通过访问控制模块来进行相关的权限验证,只有两次验证都通过后,才能继续执行SQL语句操作,这个过程涉及用户管理和访问控制两个模块。用户管理模块用于管理登录用户信息、设置相关权限,Mysql......