docker中安装gitlab,并完成gitlab容器迁移包括相关数据备份

这篇具有很好参考价值的文章主要介绍了docker中安装gitlab,并完成gitlab容器迁移包括相关数据备份。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. docker拉取gitlab

    docker pull twang2218/gitlab-ce-zh
    
  2. 启动容器

    docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh
    
    docker run 
    -d                #后台运行,全称:detach
    -p 8443:443      #将容器内部端口向外映射
    -p 8090:80       #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口
    -p 8022:22       #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口
    --restart always #容器自启动
    --name gitlab    #设置容器名称为gitlab
    -v /usr/local/gitlab/etc:/etc/gitlab    #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建
    -v /usr/local/gitlab/log:/var/log/gitlab    #与上面一样
    -v /usr/local/gitlab/data:/var/opt/gitlab   #与上面一样
    --privileged=true         #让容器获取宿主机root权限
    twang2218/gitlab-ce-zh    #镜像的名称,这里也可以写镜像ID
    
  3. 更改配置信息

    // 添加-a 参数,把启动的,没有启动的都列出来
    docker ps
    // 进入容器
    docker exec -it gitlab bash
    //先进入到gitlab目录
    cd /etc/gitlab   
    //编辑gitlab.rb文件  
    vim gitlab.rb(拉取下来的镜像启动后的容器内部本身的gitlab.rb文件信息都是注释的,放开即可)
    // 在gitlab创建项目时候http地址的host(不用添加端口)
    external_url 'http://xx.xx.xx.xx'
    
    //配置ssh协议所使用的访问地址和端口
    gitlab_rails['gitlab_ssh_host'] = '192.168.XX.XX' //和上一个IP输入的一样
    gitlab_rails['gitlab_shell_ssh_port'] = 8022 // 此端口是run时22端口映射的8022端口
    :wq //保存配置文件并退出
    
    // 文件路径 /opt/gitlab/embedded/service/gitlab-rails/config
    //先进入到config目录下
    cd /opt/gitlab/embedded/service/gitlab-rails/config
    //打开编辑gitlab.yml文件
    vim gitlab.yml
    //修改host 与上面.rb文件修改的一致
    // 修改port 为8090
    

    docker gitlab迁移,docker应用,docker,gitlab,容器

  4. 重新启动

    // 容器内重启
    gitlab-ctl restart
    // 容器外重启
    docker restart gitlab
    
  5. 服务器开放端口

    开放端口:8090
    
  6. 测试运行

    在浏览器地址里输入 http://Ip:8090
    
    //容器外停止
    docker stop gitlab   // 这里的gitlab 就是我们上一步docker run 当中使用--name 配置的名字
    //容器外重启
    docker restart gitlab
    //进入容器命令行
    docker exec -it gitlab bash
    //容器中应用配置,让修改后的配置生效
    gitlab-ctl reconfigure
    //容器中重启服务
    gitlab-ctl restart
    
    
  7. 将这个gitlab容器迁移到另外一个服务器上,并且把数据备份

    • 查看容器名称和容器ID

      docker ps
      
    • 查看容器对应的挂载目录

      docker inspect gitlab | grep Mount -A 20
      docker inspect 641d16e052b3 | grep Mount -A 20
      
    • 得到宿主机与容器的映射关系,方便我们在宿主机内更改配置文件

      docker gitlab迁移,docker应用,docker,gitlab,容器

    • 进入容器并将数据备份

      //进入容器
      docker exec -it gitlab /bin/bash
      //进入目录
      cd /var/opt/gitlab/backups
      // 生成数据备份文件,生成的文件是.tar文件,类似1598965868_2020_09_01_13.3.2_gitlab_backup.tar
      gitlab-rake gitlab:backup:create
      // 上面的备份命令并不会把配置额文件一起备份,需要我们手动的将配置文件给保存下来
      // 进入/etc/gitlab,找到以下文件
      gitlab.rb
      gitlab-secrets.json
      // 其实可以退出到宿主机,然后找到其映射文件目录里面再继续找到这两个文件,并将其进行备份,也可以使用docker cp命令将需要备份的文件给保存起来
      
      //数据备份完成后要不要把当前容器给停止了,就看你的选择了
      
    • 进入新的服务器,确保新服务器上已经安装好了docker

    • 在上一个服务器中查看gitlab容器所用镜像的版本,确保两个服务器docker中使用的gitlab镜像是一致的

      方案一
      使用docker images 查看镜像名称和版本信息然后去拉取
      或者使用 docker exec gitlab gitlab-rake gitlab:env:info 查看gitlab版本信息
      方案二
      在服务器1中把gitlab容器导出为镜像的tar文件,然后再在服务器2中给引入,不过后续处理可能会存在问题
      
    • 这里就继续docker拉取了

      docker pull twang2218/gitlab-ce-zh
      
    • 创建挂载目录

      mkdir -p /data/gitlab/config
      mkdir -p /data/gitlab/logs
      mkdir -p /data/gitlab/data
      
      如果你不想挂载那么多目录的话,可以只创建/data/gitlab目录
      
    • 启动容器

      docker run --detach \
      --privileged=true \
      --hostname 192.168.201.129 \
      --publish 443:443 --publish 80:80 --publish 2222:22 \
      --name gitlab --restart always \
      --volume /data/gitlab/config:/etc/gitlab \
      --volume /data/gitlab/logs:/var/log/gitlab \
      --volume /data/gitlab/data:/var/opt/gitlab 3494787883fd
      
      --detach 指定容器后台运行
      
      --privileged=true 使用--privileged=true参数可以给Docker容器添加宿主机的root权限。这样,容器就可以在宿主机中获取更高的权限,包括读写文件权限。
      
      --hostname 指定主机地址
      
      --publish 指定端口映射,冒号前代表宿主机的端口,冒号后代表容器的端口
      
      --name 容器的名字
      
      --restart always 总是重启
      
      --volume 指定数据卷
      
      最后那一串东西是docker image的id 用来指定使用那个镜像,也可以使用镜像名称加版本号
      
      ps:如果启动失败的话,可以查看报错日志
      docker logs -f gitlab 
      
    • 启动容器后就是把刚才的备份文件放到对应的目录,看一下自己容器启动时候的映射目录

      上传前面的备份文件和配置文件到对应目录
      /data/gitlab/data/backups
      /data/gitlab/config
       
      将备份文件权限修改为777,不然可能会报权限不足导致恢复备份失败
      chmod 777 1598965868_2020_09_01_13.3.2_gitlab_backup.tar
      
    • 进入容器,先停止相关数据连接服务,加载备份文件

      进入容器
      docker exec -it gitlab /bin/bash
       
      停止相关数据连接服务
      gitlab-ctl stop unicorn
      gitlab-ctl stop sidekiq
       
      进入目录/var/opt/gitlab/backups,因为备份在这个目录下
      cd /var/opt/gitlab/backups
       
      加载备份文件,注意等号后面只需到文件编号,不用整个文件名
      gitlab-rake gitlab:backup:restore BACKUP=1598965868_2020_09_01_13.3.2
       
      等待备份文件加载完成即可,中间会出现几次交互,大概意思就是加载备份会删除现有数据,是否确定,都输入yes就可以
       
      重新加载配置
      gitlab-ctl reconfigure
      退出容器
      exit
      开放端口8090
      查看容器运行状态
      docker ps
      浏览器中测试
      如果不行就在容器外重启
      docker restart gitlab
      
    • 处理gitlab磁盘IO 100%!文章来源地址https://www.toymoban.com/news/detail-775155.html

      进入配置文件gitlab.rb中进行修改
      
      unicorn['worker_timeout'] = 60
      unicorn['worker_processes'] = 2
      unicorn['worker_memory_limit_min'] = "100 * 1 << 20"
      unicorn['worker_memory_limit_max'] = "250 * 1 << 20"
      sidekiq['concurrency'] = 8
      postgresql['shared_buffers'] = "128MB"
      postgresql['max_worker_processes'] = 4
      prometheus['enable'] = false
      
      重启gitlab
      

到了这里,关于docker中安装gitlab,并完成gitlab容器迁移包括相关数据备份的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在 CentOs7 中安装宝塔面板和 Docker(包括MySQL,Redis)

    如果有云服务器直接用 ip,端口,密码连接 如果没有,可以使用虚拟机安装 CentOs7 再连接,具体教程可参考: 在虚拟机 VMware 中安装 CentOs 7及使用 Xshell 进行连接_凉了的凉茶的博客-CSDN博客 这里我选择连接虚拟机 宝塔面板官网:宝塔面板 - 简单好用的Linux/Windows服务器运维管

    2024年02月10日
    浏览(42)
  • RabbitMQ 安装(在docker容器中安装)

    为什么要用? RabbitMQ是一个开源的消息代理和队列服务器,主要用于在不同的应用程序之间传递消息。它实现了高级消息队列协议(AMQP),并提供了一种异步协作机制,以帮助提高系统的性能和扩展性。 RabbitMQ的作用主要体现在以下几个方面: 1. 异步处理:通过将消息写入

    2024年02月04日
    浏览(40)
  • 如何在 docker 容器中安装 ROS

    本文记录在 docker ubuntu 18.04 环境下安装 ROS(机器人操作系统) 的过程。 安装步骤如下: 注意:如果 rosdep 命令执行失败,解决方法参考 这篇 文章:更换 rosdep 为 rosdepc ,步骤如下: 以后遇到 rosdep 的地方都换成 rosdepc 即可。 以上操作结束之后,使用如下命令验证 ros 是否安

    2024年02月11日
    浏览(26)
  • Docker启动Centos7容器,并在容器中安装Docker,且开启SSH

    前言 此处我的需求是,在docker中启动centos7容器,并在容器中安装docker,支持ssh远程连接。如果你不需要在容器中安装docker,则可以只看第一部分的前两段,分别为: 启动centos7 容器 和 进入刚刚创建的容器 ,然后直接跳过安装docker阶段,直接去看 开启 ssh 服务 即可。 启动c

    2024年02月15日
    浏览(34)
  • 使用docker完成minio服务部署扩容备份迁移生产实践文档

    当服务器存储空间不足的时候,需要进行扩容,扩容过程中需要短暂停机时间,预计在一小时内能够完成和恢复 统一注意事项 强烈建议为部署中的所有节点选择基本相似的硬件配置。确保硬件(CPU、内存、主板、存储适配器)和软件(操作系统、内核设置、系统服务)在所

    2024年02月03日
    浏览(39)
  • DOCKER容器中安装JDK1. 8 详细步骤

    在命令输入docker version命令显示如上图所示,则说明docker容器已经安装成功了,下面只需要根据步骤一步步操作即可在docker容器安装JDK。 2、通过DOCKER SEARCH命令查找远程镜像 注意:如果没指定版本号默认下载最新(latest) 此时,运行成功返回一长串类型uuid的东东,表示docker容器

    2024年02月11日
    浏览(33)
  • netdata监控服务器主机(包括Docker容器)

    创建挂载目录 docker运行 通过ip:19999端口访问web界面 此时默认是英文界面,netdata暂不支持中文语言 下载汉化文件,我这直接git拉取 修改dashboard.js文件 快速搜索定位/NETDATA.jQuery ,将jquery版本修改成jquery-3.6.0.min.js 进入netdata容器 切换到web目录下 将dashboard_info.js、、index.html、

    2024年02月11日
    浏览(43)
  • Docker系列--在容器中安装JDK的方法(有示例)

    原文网址:Docker系列--在容器中安装JDK的方法(有示例)_IT利刃出鞘的博客-CSDN博客 说明 本文介绍如何在容器中安装JDK。 为什么要装JDK? JDK里有很多工具,比如jps、jstack、jmap等,可以排查问题。 本文目标 给Ubuntu系统里的docker容器安装JDK8,可以调用其jps命令。 可以通过此命令

    2024年02月04日
    浏览(36)
  • Docker容器迁移

    将Docker容器迁移到另外一台服务器上,最常用的方法是迁移容器关联到的镜像。 对于必须迁移的容器,首先使用 docker commit 命令将其保存为Docker镜像。 生成的镜像将被压缩成为一个新的镜像,使用此方法,数据卷不会被迁移,但是它会保留在容器内创建的应用程序的数据。

    2024年02月15日
    浏览(34)
  • docker容器迁移教程

    被领导要求部署一个和测试环境一样的演示环境,并且数据库也要同步过去,服务器上的各种服务都是docker部署的,由于之前docker玩的比较少,所以还是踩了不少坑的,在此记录一下正确的操作方法。 1.容器镜像导出 我们先通过 docker images 查看需要导出的镜像 然后我们使用

    2024年02月06日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包