需求:想把服务器上的gitlab迁移到docker容器里面
注意:gitlab的迁移,必须保持gitlab的版本一致,此处使用的是:8.4.3,数据库版本和类型一致,此处使用的是postgresql 9.5

原来服务器的版本信息:
系统:centos 7.2
gitlab:8.4.3
postgresql:9.5
redis

基础:docker的安装
yum install docker -y
service docker restart

由于docker去拉取国外的镜像,速度超级慢,严重影响实现的时间和效率,所以我们可以在docker云上面注册(https://account.daocloud.io/signin),使用加速器加速。
此处我就不说了,我的上一篇博客记录有,参考网址:http://www.cnblogs.com/tianfen/p/6387220.html

一.下载镜像
docker pull sameersbn/gitlab:8.4.3
docker pull sameersbn/postgresql:9.5
docker pull sameersbn/redis

mkdir -p /mnt/docker/{redis,data,log,postgresql} # docker镜像启动挂载卷 (此处存放自定义)
chcon -Rt svirt_sandbox_file_t /mnt/docker/

二、启动运行(gitlab最后启动)
1.redis
docker run --name gitlab-redis -d \
--volume /mnt/docker/redis:/var/lib/redis \
sameersbn/redis:latest

2.postgresql
docker run --name gitlab-postgresql -d \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
--env 'DB_EXTENSION=pg_trgm' \
--volume /mnt/docker/postgresql:/var/lib/postgresql \
sameersbn/postgresql:9.5

3.gitlab (每天凌晨自动备份)
docker run --name gitlab -d \
--publish 22000:22 --publish 80:80 \
--env 'GITLAB_PORT=80' --env 'GITLAB_SSH_PORT=22' \
--env 'GITLAB_HOST=ip/域名' \
--env 'GITLAB_ROOT_PASSWORD=password' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=f5HHFKC329RVkdRlpbNffW8Nhh5JhgTZ84d6ZFMf5xL2vNXrjFk76N2hwGWmjhPS' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=f5HHFKC329RVkdRlpbNffW8Nhh5JhgTZ84d6ZFMf5xL2vNXrjFk76N2hwGWmjhPS' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=f5HHFKC329RVkdRlpbNffW8Nhh5JhgTZ84d6ZFMf5xL2vNXrjFk76N2hwGWmjhPS' \
--link gitlab-postgresql:postgresql \
--link gitlab-redis:redisio \
--env=‘GITLAB_BACKUPS=daily‘ --env=‘GITLAB_BACKUP_TIME=00:00‘ \
--volume /mnt/docker/data:/home/git/data \
sameersbn/gitlab:8.4.3

上面的一长串字符串的话,可以安装pwgen生成
yum install epel-release
yum update
yum install pwgen -y
pwgen -Bsv1 64
基本的安装启动已经完成。

三、数据迁移
sudo docker exec -it gitlab bash ---进入容器
sudo -u git -H bundle exec rake gitlab:backup:restore RAILS_ENV=production --一般情况,可以恢复成功

如果报keys错误:执行下来这条命令,导入keys
docker exec -it gitlab bash -c 'LC_ALL=en_US.UTF-8 sudo -HEu git bundle exec rake gitlab:shell:setup RAILS_ENV=production'

常用命令:
1.启动容器
docker start 容器id/容器名
例如:
docker start gitlab-redis
docker start gitlab-postgresql
docker start gitlab

2.查看当前启动的容器
docker ps

3.查看所有容器,包括已经停止的
docker ps -a

4.删除容器
docker rm 容器id/容器名

5.删除镜像
docker rmi 镜像id/镜像名

6.按照指定版本恢复的命令
sudo docker exec -it gitlab bash
sudo -u git -H bundle exec rake gitlab:backup:restore RAILS_ENV=production BACKUP=1489421052 (BACKUP后指定版本)
如果报keys错误:
docker exec -it gitlab bash -c 'LC_ALL=en_US.UTF-8 sudo -HEu git bundle exec rake gitlab:shell:setup RAILS_ENV=production'

7.手动备份gitlab数据
sudo docker exec -it gitlab bash
sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
8.修改gitlab的root密码
sudo docker exec -it gitlab bash ---进入容器
bundle exec rails console production ---进入修改root密码的界面
user = User.where(id: 1).first ---获取root用户的相关信息
user.password = '密码' ---修改密码
user.password_confirmation = '密码' ---确认密码
user.save! ---保存

gitlab数据迁移到docker容器的更多相关文章

  1. 把Gitlab迁移到Docker容器里

    把Gitlab迁移到Docker容器里 Apr 9, 2015. | By: 任怀林 公司的gitlab一直是运行在ovm的虚拟机里的,版本还是6.7.5.版本有点老了,最近在研究docker,于是想 ...

  2. gitlab数据迁移

    由于gitlab是默认安装的,随着公司代码越来越多,导致gitlab数据目录空间不足,出现无法访问gitlab了. 磁盘空间: /home有1.8T的空间一直没用上! 现在打算将原有代码目录迁移到新目 ...

  3. gitlab数据迁移至其他gitlb服务器上

    需求: A : 待迁移服务器,上边存有数据 B:接收项目得服务器,本身存在数据 验证方案: 一,搭建gitlab8.15.2 OS:rhel7.4 yum install policycoreutil ...

  4. 【Linux】宝塔上 GitLab数据迁移修改配置后nginx无法启动

    背景: 服务器A 向 服务器B 迁移数据,修改配置重启.发现gitlab的 nginx 无法启动. 查找原因 gitlab-ctl tail 错误信息: 网上查了查,似乎是宝塔的问题, 原因应该是为了 ...

  5. 将数据挂载到 docker 容器中的3种方式:volume、bind mount、tmpfs

    出处:https://deepzz.com/post/the-docker-volumes-basic.html

  6. 5、docker容器数据卷: -v添加共享传递容器数据卷

    1.是什么 1.docker理念 先来看看Docker的理念:*  将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的*  容器之间希望有可能共享数据 2.保 ...

  7. 项目案例之GitLab的数据迁移

    项目案例之GitLab的数据迁移 链接:https://pan.baidu.com/s/1CgaEv12cwfbs5RxcNpxdAg 提取码:fytm 复制这段内容后打开百度网盘手机App,操作更方 ...

  8. Docker容器内Mysql大小写敏感方案解决

    Docker容器内Mysql大小写敏感方案解决 一.(lower_case_table_names)参数说明 二.Docker 部署 MySql 并修改为大小写不敏感 2.1直接在Docker启动的时 ...

  9. [docker] 管理docker容器中的数据

    之前我们介绍了Docker的基本概念(前面的没翻译...),了解了如何使用Docker镜像进行工作,并且学习了网 络和容器之间的链接.这一节我们将讨论如何管理容器中及容器之间的数据. 我们将查看下面两 ...

随机推荐

  1. vim插件:显示树形目录插件NERDTree安装 和 使用【转】

    本文转载自:https://my.oschina.net/VASKS/blog/388907 下载和配置 NERDTree插件的官方地址如下,可以从这里获取最新的版本 https://github.c ...

  2. cell.getCellType有几种

    CellType 类型 值CELL_TYPE_NUMERIC 数值型 0CELL_TYPE_STRING 字符串型 1CELL_TYPE_FORMULA 公式型 2CELL_TYPE_BLANK 空值 ...

  3. 深度学习 dns tunnel检测 使用统计特征 全连接网络——精度99.8%

    代码如下: import numpy as np import tflearn from tflearn.layers.core import dropout from tflearn.layers. ...

  4. BZOJ_2819_Nim_树状数组维护出栈入栈序

    BZOJ_2819_Nim_树状数组维护出栈入栈序 Description 著名游戏设计师vfleaking,最近迷上了Nim.普通的Nim游戏为:两个人进行游戏,N堆石子,每回合可以取其中某一堆的任 ...

  5. [Usaco2018 Feb] New Barns

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5192 [算法] 维护树的直径,在树上离一个点最远的点一定是一条直径的端点.     ...

  6. saltstack源码-启动1

    决定看salt的源码了.干脆就从最基本的看起来,先看它的启动过程开始第一步用/etc/init.d/salt-master start 启动找到那个文件,发现有3种启动方式,suse,debian,c ...

  7. lua 与 c 的相互调用

    Lua是一个嵌入式的语言,意味着Lua不仅可以是一个独立运行的程序包也可以是一个用来嵌入其他应用的程序库. Lua可以作为程序库用来扩展应用的功能,也就是Lua可以作为扩展性语言的原因所在.同时,Lu ...

  8. UI:数据的解析

    在懒加载的时候要注意事项: 必须使用 self.XX 的样式去开辟空间,不能使用 _XX 的格式去开辟,因为前者是内部的 set 方法,而后者并不走内部的 set 方法. json 文件的创建  xm ...

  9. ROS学习笔记八:基于Qt搭建ROS开发环境

    1 前言 本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-industrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Q ...

  10. ACM_素数环(dfs)

    Problem Description: 如图所示,环由n个圆组成. 将自然数1,2,...,n分别放入每个圆中,并且两个相邻圆中的数字总和应为素数. 注意:第一个圆圈的数量应该始终为1. Input ...