一、安装与运行

// 拉取镜像docker pull gitlab/gitlab-ce// 运行镜像(因为是在本地运行,用的是本机IP地址,正式部署应该使用域名)docker run --detach \  --hostname 192.168.37.129 \  --publish 443:443 --publish 80:80 --publish 2022:22 \  --name gitlab \  --restart always \  --volume /srv/gitlab/config:/etc/gitlab \  --volume /srv/gitlab/logs:/var/log/gitlab \  --volume /srv/gitlab/data:/var/opt/gitlab \

注意:生产环境建议将config,logs,data挂载在宿主机。以避免当Gitlab Docker进程意外终止,重启后丢失配置信息和数据。

// 修改配置docker exec -it gitlab /bin/bash// 编辑配置vim /etc/gitlab/gitlab.rb// 修改外部访问地址,局域网内可以使用IP。公网使用域名external_url "http://192.168.37.129"// 重启docker restart gitlab

在浏览器输入:http://192.168.37.129/ 。第一次访问Gitlab需要设置root账号密码。

二、备份与恢复

2.1、备份

// 在主机运行备份。命令如下:// docker exec -t <container name> gitlab-backup createdocker exec -t gitlab gitlab-backup create// 默认的备份目录在容器目录 `/var/opt/gitlab/backups`

注意:对于GitLab 12.1和更早版本,请使用gitlab-rake gitlab:backup:create。

2.2、恢复

Step1、将备份文件拷贝到容器目录 /var/opt/gitlab/backups。(备份和恢复的GitLab版本尽量保持一致)

Step2、停止相关数据连接服务

// 如果没有执行权限请加sudogitlab-ctl stop unicorngitlab-ctl stop sidekiq// 指定备份文件的时间戳前缀(多个备份文件)gitlab-rake gitlab:backup:restore BACKUP=1570603937_2019_10_09_12.2.5or gitlab-backup restore BACKUP=1570603937_2019_10_09_12.2.5// 默认备份恢复(backups目录下只有一个备份文件时)gitlab-rake gitlab:backup:restore// 如果遇到权限问题,需要给备份文件增加权限chmod 777 1570606338_2019_10_09_12.2.5_gitlab_backup.tar



Step3、重启服务

// 如果有配置文件修改,让新的配置生效gitlab-ctl reconfigure// 重启gitlabgitlab-ctl start// 检查服务gitlab-rake gitlab:check SANITIZE=true

2.3、迁移

迁移如同备份与恢复的步骤一样,只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的 /var/opt/gitlab/backups 即可(如果你没修改过默认备份目录的话)。但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同。比如新服务器安装的是最新的7.60版本的Gitlab。那么迁移之前,最好将老服务器的Gitlab 升级为7.60在进行备份。

2.4、备份数据到AWS S3

Step1、修改配置文件/etc/gitlab/gitlab.rb

gitlab_rails['backup_upload_connection'] = {  'provider' => 'AWS',  'region' => 'eu-west-1',  'aws_access_key_id' => 'AKIAKIAKI',  'aws_secret_access_key' => 'secret123'  # If using an IAM Profile, don't configure aws_access_key_id & aws_secret_access_key  # 'use_iam_profile' => true}gitlab_rails['backup_upload_remote_directory'] = 'my.s3.bucket'

Step2、使配置文件生效

gitlab-ctl reconfigure

Step3、执行备份命令,查看备份文件是否上传s3成功

gitlab-backup create

Step4、从s3下载备份文件到本地(必须先安装aws-cli工具)

aws s3 cp s3://finger-test/gitlab/backups/1570844249_2019_10_12_12.2.5_gitlab_backup.tar .

2.5、自动备份

# 使用Linux系统的Crontabcrontab -e  # 输入相应的任务0 2 * * * docker exec -t gitlab gitlab-backup create

参考:

  • https://docs.gitlab.com/omnibus/docker/
  • https://docs.gitlab.com/ee/raketasks/backup_restore.html

如果您喜欢这篇文章,请考虑关注我。

长沙DevOps联盟 - 关注容器技术,K8S,自动化部署,基础设施架构。

©著作权归作者所有:来自51CTO博客作者mob604756e9ab63的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Xtrabackup备份
  2. 还原工具mysqldump
  3. Redis 数据备份与恢复
  4. 如何使用 Apple Configurator 2 修复或恢复搭载 Apple 芯片的 Ma
  5. postgresql备份与PITR恢复
  6. PG数据库管理_备份工具的使用
  7. [灾备]备份类型
  8. [灾备] 数据副本管理技术(CDM)
  9. [灾备]通过 NAS 与文件服务器结合构建数据容灾系统

随机推荐

  1. 一个真实问题,搞定三个冷门pandas函数
  2. 分析数万条旅游评论数据后,告诉你国庆“坑
  3. 让Python在后台自动解压各种压缩文件!
  4. 给女朋友写了一份前端学习路线。
  5. “你活该不去创业!”
  6. 小五碎碎谈
  7. 更高效的利用Jupyter+pandas进行数据分析
  8. 周末忙里偷闲去见了大学的俩老朋友。
  9. 如何在启动Jupyter Notebook时自动执行一
  10. 秒懂!图解四个实用的Pandas函数!