飞腾ft2000-麒麟V10-SP1安装Docker、运行gitlab容器
目录
一、安装及配置docker
1、卸载docker相关包及删除相关配置文件
2、安装二进制docker
1.下载软件包
2.解压
3.修改镜像加速地址
4.修改profile文件
5.启动docker
6.docker常用命令
二、安装并启动gitlab镜像
1.安装gitlab镜像
1.查询满足使用需求的gitlab版本
2.下载镜像
2.运行gitlab及修改配置
1.运行gitlab
2.配置
3.验证测试
4.浏览器测试
3.修改外部访问端口(docker对gitlab容器的映射)
1.方法1:删除原有容器,重建新容器
2. 方法2 :修改容器配置文件,重启docker服务
3. 方法3: docker commit新构镜像
4.密码
1.默认密码
2.修改root密码
一、安装及配置docker
1、卸载docker相关包及删除相关配置文件
apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
apt-get autoremove docker-ce-*
dpkg -l | grep docker
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
rm -rf /etc/systemd/system/docker.service.d
rm -rf /var/lib/docker/*docker --version #验证是否卸载成功
reboot #重启服务器
2、安装二进制docker
1.下载软件包
wget -c 0 https://download.docker.com/linux/static/stable/aarch64/docker-19.03.9.tgz
2.解压
tar -zxvf docker-19.03.9.tgz -C /usr/bin
3.修改镜像加速地址
vim /etc/docker/daemon.json{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
4.修改profile文件
# vim /etc/profile #末尾添加如下代码export PATH=/usr/bin/docker:$PATH# source /etc/profile #刷新profile文件
5.启动docker
dockerd --data-root=/var/lib/docker & #启动dockerdocker version #查询版本验证docker是否安装成功
6.docker常用命令
docker常用命令
二、安装并启动gitlab镜像
1.安装gitlab镜像
1.查询满足使用需求的gitlab版本
Docker官方仓库
在仓库中查询gitlab,因为需要区分构建后的架构,查找自己需要使用的CPU架构版本,飞腾为arm64架构,这里选择的是yrzr/gitlab-ce-arm64v8,这个版本是arm64架构
2.下载镜像
root@kylin:~# docker pull yrzr/gitlab-ce-arm64v8
2.运行gitlab及修改配置
1.运行gitlab
root@kylin:~# docker run -d \
--restart always \ #容器停止后的重启策略: 容器退出时总是重启
--name gitlab \
--privileged \
--memory 4096M \
-p 1022:22 -p 1080:1080 -p 443:443 \ #端口,左边为宿主机,右边为容器
--hostname gitlab.example.com \ #访问域名,可以后续修改
--env GITLAB_OMNIBUS_CONFIG="nginx['redirect_http_to_https'] = true; " \
-v /root/software/gitlab/etc:/etc/gitlab:z \ #数据卷挂载,左边为宿主机,右边为容器
-v /root/software/gitlab/log:/var/log/gitlab:z \
-v /root/software/gitlab/data:/var/opt/gitlab:z \
yrzr/gitlab-ce-arm64v8:latest
2.配置
gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置/etc/gitlab/gitlab.rb
下面的配置文件需要在容器内修改,请勿挂载到宿主机的文件上进行修改,否则可能会出现配置更新不到容器内或者延迟更新到容器内,导致启动成功,却无法访问。
root@kylin:~# docker exec -it gitlab /bin/bash #进容器内部 root@gitlab:/# vi /etc/gitlab/gitlab.rb #修改配置文件#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口,这里的端口号要与启动容器时的端口映射相对应 external_url 'http://192.168.5.52:1080' #ssh主机ip gitlab_rails['gitlab_ssh_host'] = '192.168.5.52' #ssh连接端口 gitlab_rails['gitlab_shell_ssh_port'] = 1022root@gitlab:/# gitlab-ctl reconfigure # 让配置生效 root@gitlab:/# gitlab-ctl restart # 重启gitlab
3.验证测试
root@kylin:~# curl http://localhost:1080
<html><body>You are being <a href="http://localhost:1080/users/sign_in">redirected</a>.</body></htm
4.浏览器测试
浏览访问:http://192.168.5.52:1080

3.修改外部访问端口(docker对gitlab容器的映射)
1.方法1:删除原有容器,重建新容器
docker rm gitlab 或 容器id #删除容器
# 构建新的容器,命令参照上面,注意修改相应端口号
优点:简单快捷,测试环境使用较多
缺点:若为数据库镜像,重建后再重新配置一次比较麻烦
2. 方法2 :修改容器配置文件,重启docker服务
root@kylin:~# docker stop f9c #停止容器
root@kylin:~# pkill -9 docker #停掉docker
root@kylin:~# ps aux | grep docker #确认docker进程是否被关闭
root@kylin:~# cat /var/lib/docker/containers/容器ID/hostconfig.json #参照下图

如上图所示,文件中其中一项是PortBindings:
- 1080/tcp对应的是容器内部的80端口
- HostPort对应的是映射到宿主机的端口8080
- 按照需求修改端口,然后启动docker服务,再重启容器即可
root@kylin:~# dockerd --data-root=/var/lib/docker &
root@kylin:~# docker restart gitlab
#重启后需要等待几分钟,和硬件配置有直接关系
- 优点:这个方法的优点是没有副作用,操作简单
- 缺点:是需要重启整个docker服务,如果在同一个宿主机上运行着多个容器服务,会影响其他容器服务
注意:一定要先停掉docker修改配置才能成功。
3. 方法3: docker commit新构镜像
把一个容器的文件改动和配置信息commit到一个新的镜像;把容器所有的文件改动和配置信息导入成一个新的docker镜像,然后用这个新的镜像重起一个容器,这对之前的容器不会有任何影响。
- 停止docker 容器
docker stop gitlab
- commit该docker容器
docker commit gitlab new_gitlab:tag
- 重新启动一个容器
docker run ...
优点:不会影响宿主机上的其他容器
缺点:管理起来显得比较乱,不如方法2直观
4.密码
1.默认密码
root@kylin:~# docker exec -it gitlab bash
root@gitlab:/# cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.Password: 密码

2.修改root密码
root@gitlab:/# gitlab-rails console #容器内部打开控制台
--------------------------------------------------------------------------------Ruby: ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [aarch64-linux]GitLab: 15.10.1 (a2b7634113a) FOSSGitLab Shell: 14.18.0PostgreSQL: 13.8
------------------------------------------------------------[ booted in 55.94s ]
Loading production environment (Rails 6.1.7.2)
irb(main):001:0> user = User.find(1) #查看id为1的账号
=> #<User id:1 @root>
irb(main):002:0> user.password = '花非人陌' #修改密码
=> "Caixm123xuan"
irb(main):003:0> user.password_confirmation = '' #确认密码
=> "Caixm123xuan"
irb(main):004:0> user.save! #保存配置
=> true
irb(main):005:0> exit #退出控制台相关文章:
飞腾ft2000-麒麟V10-SP1安装Docker、运行gitlab容器
目录 一、安装及配置docker 1、卸载docker相关包及删除相关配置文件 2、安装二进制docker 1.下载软件包 2.解压 3.修改镜像加速地址 4.修改profile文件 5.启动docker 6.docker常用命令 二、安装并启动gitlab镜像 1.安装gitlab镜像 1.查询满足使用需求的gitlab版本 2…...
C++ 的类型转换
目录 1. C语言中的类型转换 2. C强制类型转换 2.1static_cast 2.2 reinterpret_cast 2.3 const_cast 2.4 dynamic_cast 3. RTTI(了解) 1. C语言中的类型转换 在 C 语言中,如果 赋值运算符左右两侧类型不同,或者形参与实参类型不…...
【Windows】普通控制台EXE程序转为windows服务方式运行的详细步骤
背景 NSSM(Non-Sucking Service Manager)是一个免费的第三方Windows服务管理器,可以将任何可执行文件转换为Windows服务。官网下载地址为:https://nssm.cc/download 以下是NSSM配置Windows服务的详细步骤和注意事项: …...
NSSCTF [suctf 2019]hardcpp WP 控制流混淆
下载文件,64位主函数非常多循环 去控制流混淆,脚本下载deflat 用法 python 脚本名 文件名 起始地址例如主函数地址是0x4007E0 python deflat.py hardCpp 0x4007E0然后就生成了去混淆的文件 主函数非常大,开始分析逻辑 puts("func(?…...
计算机毕业论文内容参考|基于神经网络的网络安全态势感知技术研究
文章目录 导文文章重点摘要前言绪论课题背景国内外现状与趋势课题内容相关技术与方法介绍技术分析技术设计技术实现总结与展望导文 基于神经网络的网络安全态势感知技术研究 文章重点 摘要 随着互联网的快速发展,网络攻击的频率和复杂度也在逐年增加。为了更好地保护信息系统…...
Flask框架之Request、Response、Cookies、Session等对象的使用
Request、Response、Cookies、Session等对象的使用 Request对象基本使用参数的获取转换器内置转换器自定义转换器 Response对象基本使用返回模板重定向返回JSON Cookies对象设置cookie获取cookie删除cookie Session会话对象设置SECRET_KEY设置会话获取会话释放会话 Request对象…...
信号与槽机制一
一、信号与槽 1、什么是信号与槽? 信号和槽是用于对象之间的通信,它是Qt的核心机制,在Qt编程中有着广泛的应用。如果想学好Qt,一定要充分掌握信号的槽的概念与使用。 2、信号和槽的代码实例 在Qt中,发送对象、发送的信…...
nodejs 复制文件到指定目录
var fs require(fs), path require(path), exec require(child_process).exec, sourcePath, targetPath; //获取命令行中的路径 process.argv.forEach(function (val, index, array) { if (index 2) { sourcePath val; } if (index 3) { targetPath val; } }); // 定义…...
第八章 使用Apache服务部署静态网站
文章目录 第八章 使用Apache服务部署静态网站一、网站服务程序1、网站服务介绍2、Apache程序介绍 二、配置服务文件参数1、Linux系统中的配置文件2、配置httpd服务程序时最常用的参数以及用途描述 三、SELinux安全子系统1、SELinux介绍2、SELinux服务配置模式3、Semanage命令4、…...
Three——四、几何体、高光网络材质、锯齿模糊以及GUI库的使用
文章: Three——一、初识Three以及基础的前端场景搭建(结尾含源码)Three——二、加强对三维空间的认识Three——三、动画执行、画布大小、渲染帧率和相机适配体验Three——四、几何体、高光网络材质、锯齿模糊以及GUI库的使用Three——五、点线模型对象、三角形概念…...
盲目自学网络安全只会成为脚本小子?
前言:我们来看看怎么学才不会成为脚本小子 目录: 一,怎么入门? 1、Web 安全相关概念(2 周)2、熟悉渗透相关工具(3 周)3、渗透实战操作(5 周)4、关注安全圈动…...
文从字顺|程序员须知,如何编写高质量代码
高质量代码是软件开发中至关重要的一部分。高质量的代码不仅可以提高软件的可维护性和可复用性,还可以增强软件的安全性和稳定性。同时,可以降低软件维护成本,提升开发效率,为用户提供更好的使用体验。 写出高质量代码是每个程序…...
PCIe物理层弹性缓存机制(详细)解析-PCIe专题知识(四)
目录 前言一、简介二、详细解析2.1 实例解析2.2 具体实现过程 三、总结四、其他相关链接1、PCI总线及发展历程总结2、PCIe物理层总结-PCIE专题知识(一)3、PCIe数据链路层图文总结-PCIe专题知识(二)4、PCIe物理层链路训练和初始化总…...
分片上传和断点续传的区别?实现思路是什么?
相同: 分片上传和断点续传都是网络传输中常用的重要技术 不同: 分片上传:将一个大文件切分为多个小文件进行上传。这种方式能够加快上传速度,降低服务器压力,特别适用于大型文件的上传。例如,在云存储系统…...
微前端 qiankun@2.10.5 源码分析(二)
微前端 qiankun2.10.5 源码分析(二) 我们继续上一节的内容。 loadApp 方法 找到 src/loader.ts 文件的第 244 行: export async function loadApp<T extends ObjectType>(app: LoadableApp<T>,configuration: FrameworkConfi…...
08异步请求:何种场景下应该使用异步请求?
异步在计算机科学中早就是一个比较常用的词汇,从操作系统的特性( 并发、共享、虚拟、异步)开始,异步就在处理并发操作中起到很大的作用,不仅如此,在软件层面,异步同样也是解决并发请求的一个关键过程,它可以将瞬时激增的请求进行更加灵活的处理,通过异步请求,客户端可…...
【深度学习 | Transformer】Transformers 教程:pipeline一键预测
文章目录 一、前言二、Computer vision2.1 Image classification2.2 Object detection2.3 Image segmentation2.4 Depth estimation 三、NLP3.1 Text classification3.2 Token classification3.3 Question answering3.4 Summarization3.5 Translation3.6 Language modeling3.6.…...
HTMLCSS
1、HTML 1.1 介绍 HTML 是一门语言,所有的网页都是用HTML 这门语言编写出来的,也就是HTML是用来写网页的,像京东,12306等网站有很多网页。 这些都是网页展示出来的效果。而HTML也有专业的解释 HTML(HyperText Markup Language)…...
【安装Nginx】
Linux上安装Nginx 文章目录 Linux上安装NginxUbuntuCentOS查看已安装的软件 Ubuntu 在 Ubuntu 上安装 Nginx 非常简单。只需按照以下步骤操作: 打开终端,更新软件包索引: sudo apt update安装 Nginx: sudo apt install nginx安…...
VSCode作业1:猜数字游戏和简单计数器(包含完整代码)
目录 猜数字游戏 一、使用‘random’函数获取随机数 二、 分情况讨论输入值大小情况 三、HTML代码 四、CSS样式及运行效果 简单计数器(计时器) 一、使用‘setInterval’函数实现计数效果 二、使用’clearInterval‘函数实现暂停计数和重新计数效果 …...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
PydanticAI快速入门示例
参考链接:https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...
HTMLCSS 学习总结
目录 一、HTML核心概念 三大前端技术作用 HTML基础结构 开发工具:VS Code 专业配置安装步骤: 二、HTML标签大全(含表格) 三、CSS核心技术 1. 三种引入方式对比 2.…...
分类数据集 - 场景分类数据集下载
数据集介绍:自然场景分类数据集,真实场景高质量图片数据;适用实际项目应用:自然场景下场景分类项目,以及作为通用场景分类数据集场景数据的补充;数据集类别:buildings、forest、glacier、mounta…...
