Windows的docker中安装gitlab
一.Windows的docker中安装gitlab
1.通过阿里云拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/lab99/gitlab-ce-zh
2.在本地创建备份数据的目录
mkdir -p D:home/software/gitlab/etc
mkdir -p D:home/software/gitlab/logs
mkdir -p D:home/software/gitlab/data
3.执行docker配置与启动
docker run --detach --publish 8443:443 --publish 8090:80 --publish 8022:22 --name gitlab --restart always --hostname 192.168.1.108 -v D:\home/software/gitlab/etc:/etc/gitlab -v D:\home/software/gitlab/logs:/var/log/gitlab -v D:\home/software/gitlab/data:/var/opt/gitlab -v /etc/localtime:/etc/localtime:ro --privileged=true registry.cn-hangzhou.aliyuncs.com/lab99/gitlab-ce-zh
以上命令注释
# 使用 docker run 命令启动一个 Docker 容器 docker run # 以分离(后台)模式运行容器,容器将在后台运行而不会占用当前终端 --detach # 将容器内的 443 端口映射到主机的 8443 端口,可用于访问容器内服务的 HTTPS 服务 --publish 8443:443 # 将容器内的 80 端口映射到主机的 8090 端口,可用于访问容器内服务的 HTTP 服务 --publish 8090:80 # 将容器内的 22 端口映射到主机的 8022 端口,可用于通过 SSH 访问容器 --publish 8022:22 # 为容器指定名称为 gitlab,方便后续对容器进行管理和操作 --name gitlab # 当 Docker 守护进程启动时,自动重启该容器,确保容器的高可用性 --restart always # 为容器指定主机名,这里是 192.168.1.108 --hostname 192.168.1.108 # 将主机的 D:\home/software/gitlab/etc 目录挂载到容器内的 /etc/gitlab 目录,用于存储 GitLab 的配置文件 -v D:\home/software/gitlab/etc:/etc/gitlab # 将主机的 D:\home/software/gitlab/logs 目录挂载到容器内的 /var/log/gitlab 目录,用于存储 GitLab 的日志文件 -v D:\home/software/gitlab/logs:/var/log/gitlab # 将主机的 D:\home/software/gitlab/data 目录挂载到容器内的 /var/opt/gitlab 目录,用于存储 GitLab 的数据文件 -v D:\home/software/gitlab/data:/var/opt/gitlab # 将主机的 /etc/localtime 目录挂载到容器内的 /etc/localtime 目录,并设置为只读,使容器内的时间与主机时间同步 -v /etc/localtime:/etc/localtime:ro # 赋予容器特权,容器内的进程将拥有一些额外的权限,但可能会带来安全风险,需谨慎使用 --privileged=true # 指定要使用的 Docker 镜像,这里使用的是 registry.cn-hangzhou.aliyuncs.com/lab99/gitlab-ce-zh 镜像 registry.cn-hangzhou.aliyuncs.com/lab99/gitlab-ce-zh
4.在同一局域网内网页中执行如下网址即可登录gitlab客户端
192.168.1.108:8090
二.手动备份gitlab数据方法
1.gitlab中的源码备份非常重要;
2.对 gitlab 进行备份是创建一个包含所有库和附件的归档文件;
3.对备份的恢复只能恢复到与备份时的 gitlab 相同的版本;
4.将 gitlab 迁移到另一台服务器上的最佳方法就是通过备份和还原。
1.使用docker exec命令进入 GitLab 容器
docker exec -it <gitlab_container_name> /bin/bash
2.在 GitLab 容器内,执行备份命令
gitlab-rake gitlab:backup:create
3.在宿主机内,执行备份命令
docker exec -it <gitlab_container_name> gitlab-rake gitlab:backup:create
4.备份文件将存储在容器内的/var/opt/gitlab/backups目录中,文件名类似于<timestamp>_gitlab_backup.tar,其中<timestamp>是当前的时间戳。
三.恢复备份
1.删除一个gitlab项目(测试用)
2.停止gitlab,执行如下命令
root@172:/# gitlab-ctl stop unicorn
ok: down: unicorn: 0s, normally up
root@172:/# gitlab-ctl stop sidekiq
ok: down: sidekiq: 1s, normally up
root@172:/#
3.确认是否停止,执行如下命令(最后两行的down即说明已停止)
root@172:/# gitlab-ctl status
run: gitlab-workhorse: (pid 246) 27978s; run: log: (pid 239) 27978s
run: logrotate: (pid 18723) 2779s; run: log: (pid 242) 27978s
run: nginx: (pid 248) 27978s; run: log: (pid 241) 27978s
run: postgresql: (pid 251) 27978s; run: log: (pid 244) 27978s
run: redis: (pid 252) 27978s; run: log: (pid 245) 27978s
down: sidekiq: 166s, normally up; run: log: (pid 243) 27978s
down: unicorn: 180s, normally up; run: log: (pid 240) 27978s
root@172:/#
4.接下来执行 gitlab 恢复操作,文件名只要数字部分就可以了
gitlab-rake gitlab:backup:restore BACKUP=备份文件名
root@172:/# gitlab-rake gitlab:backup:restore BACKUP=1737450440_gitlab_backup
The specified backup doesn't exist!
root@172:/#
5.重新启动gitlab
root@172:/# gitlab-ctl restart
ok: run: gitlab-workhorse: (pid 52065) 0s
ok: run: logrotate: (pid 52073) 1s
ok: run: nginx: (pid 52079) 0s
ok: run: postgresql: (pid 52101) 1s
ok: run: redis: (pid 52109) 0s
ok: run: sidekiq: (pid 52113) 0s
ok: run: unicorn: (pid 52118) 1s
root@172:/#
6.确认是否启动
root@172:/# gitlab-ctl status
run: gitlab-workhorse: (pid 52065) 61s; run: log: (pid 239) 28709s
run: logrotate: (pid 52073) 61s; run: log: (pid 242) 28709s
run: nginx: (pid 52079) 60s; run: log: (pid 241) 28709s
run: postgresql: (pid 52101) 60s; run: log: (pid 244) 28709s
run: redis: (pid 52109) 59s; run: log: (pid 245) 28709s
run: sidekiq: (pid 52113) 59s; run: log: (pid 243) 28709s
run: unicorn: (pid 52118) 59s; run: log: (pid 240) 28709s
root@172:/#
7. 恢复完成
四.自动备份gitlab数据方法
1.在宿主机内,创建批处理文件, gitlab_backup_sunday.bat
@echo off
setlocalREM 设置 Gitlab 容器名称
set GITLAB_CONTAINER_NAME=<gitlab_container_name>REM 设置备份日志文件路径
set LOG_FILE=D:\home\software\gitlab\data\backups\backup_log.txtREM 开始备份操作
echo Starting Gitlab backup at %DATE% %TIME% >> %LOG_FILE%REM 以下是核心备份命令
docker exec -it %GITLAB_CONTAINER_NAME% gitlab-rake gitlab:backup:createREM 结束备份操作
echo Backup completed at %DATE% %TIME% >> %LOG_FILE%endlocal
2.使用方法
- 将上述代码保存为一个
.bat
文件,例如gitlab_backup_sunday.bat
。 - 打开 Windows 的 “任务计划程序”:
- 搜索并打开 “任务计划程序”。
- 在 “任务计划程序” 中,点击 “创建任务”。
- 在 “常规” 选项卡中,输入任务的名称,如 “Gitlab 周日备份任务”,并选择一个具有足够权限的用户账户(通常是管理员账户)。
- 在 “触发器” 选项卡中,点击 “新建”,设置触发器的详细信息:
- 开始任务设置为 “按预定计划”。
- 选择 “每周”,在 “周日” 上打勾,将开始时间设置为 02:00:00。
- 在 “操作” 选项卡中,点击 “新建”,选择 “启动程序”,并浏览找到你保存的
gitlab_backup_sunday.bat
脚本
五.手动本地备份gitlab镜像
在 Windows 上使用 Docker 时,每个 Docker 镜像实际上存储在 Docker 的存储系统中,其具体位置取决于 Docker 的安装和配置,但通常情况下,你不需要直接操作该位置,因为 Docker 会自动管理镜像的存储和使用。以下是一些有关 Docker 镜像在 Windows 上存储的详细信息:
1、Docker 存储位置的一般情况
Docker 在 Windows 上使用 Windows 容器时,镜像存储在 Windows 的文件系统中,但位置通常隐藏在 Docker 的内部存储结构中。
对于 Docker Desktop,它使用一个名为 vhdx 的虚拟硬盘文件(Hyper-V 技术)来存储镜像、容器和其他 Docker 相关数据。这个文件通常位于 C:\ProgramData\DockerDesktop\vm-data\DockerDesktop.vhdx。
2、查看 Docker 镜像信息
你可以使用 Docker 命令行工具来查看和管理镜像信息,而无需直接访问存储位置。例如:
查看所有本地 Docker 镜像:docker images
这个命令将列出所有已下载到本地的 Docker 镜像,包括镜像的仓库名、标签、镜像 ID、创建时间和大小等信息。
3、存储位置的限制和注意事项
直接操作 Docker 的存储位置可能会导致 Docker 出现不可预测的问题,如数据损坏或丢失,因为 Docker 期望它的存储结构保持完整。
如果你需要备份或迁移 Docker 镜像,可以使用 Docker 提供的命令和工具,而不是直接操作存储位置。
1.保存一个镜像为一个 .tar 文件
docker save -o <output_file.tar> <image_name:tag>
这个命令会将指定的镜像保存为一个 .tar 文件,你可以将其存储在 Windows 的任何位置。
2.加载一个已保存的镜像
docker load -i <input_file.tar>
这个命令可以将之前保存的 .tar 文件加载回 Docker 环境。
相关文章:

Windows的docker中安装gitlab
一.Windows的docker中安装gitlab 1.通过阿里云拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/lab99/gitlab-ce-zh 2.在本地创建备份数据的目录 mkdir -p D:home/software/gitlab/etc mkdir -p D:home/software/gitlab/logs mkdir -p D:home/software/gitlab/dat…...

基于微信小程序的健身管理系统设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

windows 安装 mysql 教程
一、下载 点开下面的链接: https://downloads.mysql.com/archives/community/ 点击Download 就可以下载对应的安装包了, 安装包如下: 二、解压 下载完成后我们得到的是一个压缩包,将其解压,我们就可以得到MySQL 8.0.28 的软件本体了(就是…...

Vue2+OpenLayers初始化高德地图
目录 一、案例截图 二、完整代码 一、案例截图 二、完整代码 一键复制即可运行: <template><div id"map-container"></div> </template> <script> import { Map, View } from ol import { Tile as TileLayer } from ol…...

六、深入了解DI
依赖注入是⼀个过程,是指IoC容器在创建Bean时,去提供运⾏时所依赖的资源,⽽资源指的就是对象. 在上⾯程序案例中,我们使⽤了 Autowired 这个注解,完成了依赖注⼊的操作. 简单来说,就是把对象取出来放到某个类的属性中。 关于依赖注…...

IMX6ull项目环境配置
文件解压缩: .tar.gz 格式解压为 tar -zxvf .tar.bz2 格式解压为 tar -jxvf 2.4版本后的U-boot.bin移植进SD卡后,通过串口启动配置开发板和虚拟机网络。 setenv ipaddr 192.168.2.230 setenv ethaddr 00:04:9f:…...

Edge-TTS在广电系统中的语音合成技术的创新应用
Edge-TTS在广电系统中的语音合成技术的创新应用 作者:本人是一名县级融媒体中心的工程师,多年来一直坚持学习、提升自己。喜欢Python编程、人工智能、网络安全等多领域的技术。 摘要 随着人工智能技术的快速发展,文字转语音(Te…...

芸众商城小程序会员页面部分图标不显示问题解决办法
我遇到的问题 如下图所示,会员中心这里的图标在小程序端显示异常。但是在网页端又是能够正常显示的。 小程序端截图: 网页端截图: 我的解决方法 检查使用的小程序版本,比如这里使用的是1.2.238版本的小程序,最后…...

手机app如何跳过无障碍权限实现弹框自动点击-ADB连接专题
手机app如何跳过无障碍权限实现弹框自动点击 --ADB连接专题 一、前言 我们在前期的时候,在双SIM卡进行协同外呼和SIM卡切换时,对如何在手机中“执行批处理脚本做自动点击”的内容进行预研,力图使用事件触发和坐标点击等方式来实现手机安装…...
「 机器人 」扑翼飞行器控制的当前挑战与后续潜在研究方向
前言 在扑翼飞行器设计与控制方面,虽然已经取得了显著的进步,但在飞行时间、环境适应性、能量利用效率及模型精度等方面依旧存在亟待解决的挑战。以下内容概括了这些挑战和可能的改进路径。 1. 当前挑战 1.1 飞行时间短 (1)主要原因 能源存储有限(电池容量小)、驱动系…...

Vue入门(Vue基本语法、axios、组件、事件分发)
Vue入门 Vue概述 Vue (读音/vju/,类似于view)是一套用于构建用户界面的渐进式框架,发布于2014年2月。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三…...
DELL EDI:需求分析及注意事项
Dell 的 EDI 需求分析 1.对接 Dell 需要使用的 EDI 传输协议 Dell 支持的传输方式包括: AS2(Applicability Statement 2):主要用于安全可靠的数据传输,在使用 AS2 时,所有数据都通过 HTTPS 或 HTTP 协议…...

计算机网络 (62)移动通信的展望
一、技术发展趋势 6G技术的崛起 内生智能:6G将强调自适应网络架构,通过AI驱动的智能算法提升通信能力。例如,基于生成式AI的6G内生智能架构将成为重要研究方向,实现低延迟、高效率的智能通信。信息编码与调制技术:新型…...
java 中多线程、 队列使用实例,处理大数据业务
场景: 从redis 订阅数据 调用线程来异步处理数据 直接上代码 定义线程管理类 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org…...
13.图形程序接口(Graphics API)
**图形程序接口(Graphics API)**是计算机图形学中的一个重要概念,可以理解为“程序员与GPU之间的桥梁”。用通俗易懂的方式来解释: 通俗解释:图形API就像翻译官 想象你是一个老板(程序员)&…...
PPT自动化 python-pptx -7: 占位符(placeholder)
占位符(placeholder)是演示文稿中用于容纳内容的预格式化容器。它们通过让模板设计者定义格式选项,简化了创建视觉一致幻灯片的过程,同时让最终用户专注于添加内容。这加快了演示文稿的开发速度,并确保幻灯片之间的外观…...

Pyecharts之图表组合与布局优化
在数据可视化中,我们经常需要将多个图表组合在一起,以展示不同维度的数据或者进行对比分析。同时,合理的布局能够提升图表的可读性和用户体验。Pyecharts 提供了强大的组件和方法,让我们可以轻松实现图表的组合和布局优化。本篇将…...

流行的开源高性能数据同步工具 - Apache SeaTunnel 整体架构运行原理
概述 背景 数据集成在现代企业的数据治理和决策支持中扮演着至关重要的角色。随着数据源的多样化和数据量的迅速增长,企业需要具备强大的数据集成能力来高效地处理和分析数据。SeaTunnel通过其高度可扩展和灵活的架构,帮助企业快速实现多源数据的采集、…...
Android vendor.img中文件执行权问题
问题 Android 9、11往vendor.img增加文件,烧写到设备后发现增加的可执行文件没有执行权限。经过漫长查找,终于找到了问题的根源,谨以此篇献给哪些脚踏实地的人们。 根本原因 system/core/libcutils/fs_config.cpp文件,fs_confi…...
关于使用微服务的注意要点总结
一、防止过度设计 微服务的拆分一定要结合团队人员规模来考虑,笔者就曾遇到过一个公司的项目,是从外部采购回来的,微服务划分为十几个应用,我们在此项目基础上进行自行维护和扩展。由于公司业务规模不大,而且二次开发的…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...