gitlab容器的迁移(部署)并配置自动备份

news/2024/11/19 17:01:40/

gitlab_0">gitlab容器的迁移(部署)并配置自动备份

本文背景为从Ubuntu服务器上迁移gitlab容器到windows并备份,若要直接拉取镜直接安装配置可直接从第二小标题参考

gitlab_4">1、原Ubuntu的gitlab容器制作为镜像

2.1 将运行的容器制为镜像
#镜像:id014cc12bf4ae
#制作的镜像名:my_ubuntu_container
docker commit 014cc12bf4ae my_ubuntu_container
2、查看生成的镜像
docker images
3、将镜像打包
#将镜像打包为my_ubuntu_container.tar
docker save my_ubuntu_container > my_ubuntu_container.tar

2、在windows的命令行里将打包的镜像运行

2.1 从tar文件中加载镜像到docker里
docker load -i my_ubuntu_container.tar
2.2 将运行配置写进docker-compose
#docker-compose.yml
version: '1.0'  services:  web:  image: 'my_ubuntu_container'restart: always  hostname: ''environment:  GITLAB_OMNIBUS_CONFIG: |external_url 'https://192.168.xxx.xxx:8081'  gitlab_rails['gitlab_shell_ssh_port'] = 2222  ports:  - '48081:8081'  - '2222:22'  volumes:  - 'D:/gitlab/config:/etc/gitlab'  - 'D:/gitlab/logs:/var/log/gitlab'  - 'D:/gitlab/data:/var/opt/gitlab'  shm_size: '256m'
2.3 启动容器

需要进到docker-compose.yml的目录运行

docker compose -f docker-compose.yml up -d
gitlab_70">2.4 导入原gitlab的数据

启动完容器会发现没有数据,需将原服务gitlab挂载目录data下的数据打包传到window里

cd D:/gitlab/data
mv data databak

可在windows文件管理器中解压

2.5 重启容器
docker restart 容器id

3、windows环境下的自动备份

3.1、需要做备份时首先要考虑备份文件目录挂载的位置,方便维护

这里将备份文件挂载到‘E’盘下重新运行容器,我这里直接编辑yml文件

version: '1.0'  name: gitlab
services:  web:  image: 'my_ubuntu_container'restart: always  hostname: ''environment:  GITLAB_OMNIBUS_CONFIG: |external_url 'https://192.168.xxx.xxx:8081'  gitlab_rails['gitlab_shell_ssh_port'] = 2222  ports:  - '48081:8081'  - '2222:22'  volumes:  - 'D:/gitlab/config:/etc/gitlab'  - 'D:/gitlab/logs:/var/log/gitlab'  - 'D:/gitlab/data:/var/opt/gitlab'- 'E:/softdata/gitlab/bak:/home/gitlab'shm_size: '256m'
3.2、启动容器
docker compose -f docker-compose.yml up -d
gitlabrb_125">3.3、修改配置文件gitlab.rb开启备份
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/home/gitlab"gitlab_rails['backup_archive_permissions'] = 0644
#备份文件存放时长单位为秒
gitlab_rails['backup_keep_time'] = 5184000
gitlabgitlab_136">3.3、进入到gitlab容器重新生成配置并重启gitlab服务
#重新生成配置
gitlab-ctl reconfigure
#gitlab服务
gitlab-ctl restart
3.4、测试备份配置

完成以上配置即可在命令行中测试生成备份文件

docker exec -it 60e56b8c693c gitlab-backup create
3.5、配置windows批处理文件

在windows上创建一个 .bat文件,作用是执行gitlab容器备份

@echo off
:: 执行 Docker 命令,在容器 60e56b8c693c 中以交互模式运行 gitlab-backup create
docker exec -it 60e56b8c693c gitlab-backup createpause
3.6、创建windows定时任务

3.6.1、打开windows的 ‘任务计划程序’
在这里插入图片描述

3.6.2、建立一个基本任务,选择具体的设置

操作栏点击‘创建基本任务’编辑名称、描述,继续设置‘触发器’选择任务何时开始,再设置‘操作’任务执行什么操作。最后在‘启动程序’里选中编辑好的.bat批处理文件,最后选择完成就好。

在这里插入图片描述

配置好的定时任务可点击启动测试执行结果,这里到挂载目录下:E:/softdata/gitlab/bak下查看备份文件是否存在
在这里插入图片描述

3.6.3、备份恢复

这里执行完的备份文件需要有两个配置文件才可恢复完整的容器,两个配置文件即gitlab-secrets.jsongitlab.rb,这里提前备份保存即可。


http://www.ppmy.cn/news/1548276.html

相关文章

C#设计模式(12)——享元模式(Flyweight Pattern)

前言 享元模式通过共享对象来减少内存使用和提高性能。 代码 public abstract class Flyweight {public abstract void Control(); }public class ComputerFlyweight : Flyweight {private string _operator;public ComputerFlyweight(string name){_operator name;}public o…

第十六届蓝桥杯模拟赛(第一期)-c++/c

前面填空参考https://blog.csdn.net/2301_76891851/article/details/143448411 后面大题code&#xff1a; 停车场停车 #include <bits/stdc.h> #define int long long using namespace std; int tmp; signed main() {int n;cin>>n;if(n<15)cout<<"…

威胁驱动的网络安全方法论

摘要 目前的网络安全风险管理实践很大程度上是由合规性要求驱动的&#xff0c;这使得公司/组织不得不在安全控制和漏洞上投入人力/物力。&#xff08;风险管理涉及多个方面&#xff0c;包括资产、威胁、漏洞和控制&#xff0c;并根据事故发生的可能性及造成的影响进行评估。威…

dnaMethyAge包学习笔记

1.introduction 许多对甲基化年龄进行计算的文章都是采用网站实现计算的&#xff0c;能够实现对甲基化年龄的计算的R包相对比较少&#xff0c;其中应用最广的是dnaMethyAge包。作者本想寻找能够计算Grimage和Grimage2的R包&#xff0c;奈何没有寻找到&#xff0c;因此只能记录一…

css uniapp背景图宽度固定高度自适应可以重复

page {height: 100%;background-image: url(https://onlinekc.a.hlidc.cn/uploads/20241115/350f94aaf493d05625a7ddbc86c7804e.png);background-repeat: repeat;background-size: contain;} 如果不要重复 把background-repeat: repeat;替换background-repeat: no-repeat;

《七大排序算法:原理、实现及性能剖析》

目录 一、七大排序的实现、原理及性能剖析1. 插入排序2. 希尔排序3. 选择排序4. 堆排序5. 冒泡排序6. 快速排序7. 快速排序&#xff08;非递归&#xff09;8. 归并排序9. 归并排序&#xff08;非递归&#xff09; 二、七大排序的复杂度和稳定性分析 一、七大排序的实现、原理及…

报错java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not ...解决方法

在运行项目时出现java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field com.sun.tools.javac.tree.JCTree qualidzz这样的报错 解决方法 1.第一步&#xff1a;在pom文件中将lombok的版本改成最新的 此时1.18.34是新…

【网络安全】SSL(一):为什么需要 Keyless SSL?

未经许可,不得转载。 文章目录 背景正文背景 随着网站和应用程序向云端迁移,使用 HTTPS(SSL/TLS)加密流量已成为行业标准。然而,传统的 HTTPS 配置要求服务器持有网站的私钥,这在云计算环境中引发了一系列安全性和合规性问题。一旦云服务器遭到攻击,私钥泄露可能带来不…