2.利用docker进行gitlab服务器迁移

一、Docker安装

安装Ubuntu 22.04.3 LTS \n \l

1、旧版本安装包清理

sudo apt-get remove docker docker-engine docker.io containerd runc

在这里插入图片描述
当你卸载Docker时,存储在/var/lib/docker/中的图像、容器、卷和网络不会自动删除。如果你想从一个干净的安装开始,并且喜欢清理任何现有的数据,请参考卸载Docker引擎部分。

2、资源库安装

在新主机上首次安装Docker引擎之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
1)更新apt软件包索引和安装包,以允许apt使用HTTPS上的存储库:

sudo apt-get update

在这里插入图片描述

sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release

在这里插入图片描述
2)添加Docker的官方GPG密钥:

sudo mkdir -p /etc/apt/keyrings

在这里插入图片描述

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

在这里插入图片描述
3)使用以下命令设置存储库:

echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

在这里插入图片描述

3.安装Docker引擎

1)更新apt软件包索引:

sudo apt-get update

2)安装Docker Engine、containerd和Docker Compose。
※最新版安装
要安装最新版本,请运行:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

在这里插入图片描述
选择Y
在这里插入图片描述
※特定版本安装
要安装特定版本的Docker 引擎,请首先列出存储库中的可用版本:

apt-cache madison docker-ce | awk '{ print $3 }'

选择所需版本并安装:

VERSION_STRING=5:20.10.13~3-0~ubuntu-jammy
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.

通过运行hello-world镜像,验证Docker引擎的安装是否成功:

sudo docker run hello-world

在这里插入图片描述
查看Docker版本

docker --version

在这里插入图片描述

二、Docker部署gitlab

1.解决非root用户没有权限运行docker命令的问题

sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组

在这里插入图片描述

2.建立环境变量

为了使镜像与配置分离,首先建立如下的环境变量

echo 'export GITLAB_HOME=/home/wqp/share/gitlab_server/gitlab' >> ~/.bash_profile

然后输入

source ~/.bash_profile

下载gitlab镜像

docker pull gitlab/gitlab-ce:latest

此处是ce稳定版
在这里插入图片描述
查看Docker存储路径以及磁盘大小,以此来判断docker是否能创建容器镜像
在这里插入图片描述
在这里插入图片描述

3.下载gitlab镜像

docker pull gitlab/gitlab-ce:latest

在这里插入图片描述

4.解压

在这里插入图片描述
在这里插入图片描述

5.安装gitlab

1).创建gitlab容器

sudo docker run --detach \--hostname gitlab.example.com \--publish 443:443 --publish 80:80 --publish 22:22 \--name gitlab \--restart always \--volume $GITLAB_HOME/config:/etc/gitlab \--volume $GITLAB_HOME/logs:/var/log/gitlab \--volume $GITLAB_HOME/data:/var/opt/gitlab \gitlab/gitlab-ce:latest

2)run他

docker run --detach \--publish 443:443 --publish 80:80 --publish 50122:22 \--name gitlab \--restart always \--volume $GITLAB_HOME/config:/etc/gitlab \--volume $GITLAB_HOME/logs:/var/log/gitlab \--volume $GITLAB_HOME/data:/var/opt/gitlab \gitlab/gitlab-ce:latest

由于之前使用22端口进行创建,修改端口之后重新创建gitlab容器,系统提醒冲突,故需要删除之后重新创建
在这里插入图片描述

3)查看当前运行的容器

docker ps -a

在这里插入图片描述
4)删除不需要的容器
先docker stop 容器name,然后再docker rm 容器name

docker run --detach \

在这里插入图片描述
5)列出本机所有镜像

docker images

6)删除镜像

docker rmi hello-world

在这里插入图片描述
7)进入容器,配置Gitlab

docker exec -it gitlab /bin/bash

在这里插入图片描述
进入对应的bash(如果前面自定义了容器名称记得修改gitlab为你自己定义的名字) 然后输入

# 配置http协议所使用的访问地址,不加端口号默认为80,有自己的域名在这里修改# 注意:如果你写了自己的域名,一定要写http://不要写https://或者不写
external_url 'http://127.0.0.1'#配置时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = 'YOUR_SSH_SERVER_ADDRESS'
gitlab_rails['gitlab_shell_ssh_port'] = 22 # 此端口是run时22端口映射的222端口# 配置http协议所使用的访问地址,不加端口号默认为80,有自己的域名在这里修改# 注意:如果你写了自己的域名,一定要写http://不要写https://或者不写
external_url 'http://127.0.0.1'#配置时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = 'http://192.168.188.129'
gitlab_rails['gitlab_shell_ssh_port'] = 50122 # 此端口是run时22端口映射的50122端口
  1. 配置邮箱服务
    这里给出一份QQ邮箱的配置,网上其他教程在这里都有坑,最多的是把 ‘smtp_tls’ 服务和 ‘smtp_auto_starttls’ 服务同时设置为 ‘true’,这样会导致服务启动失败

9)docker 打包与加载到其他主机

① 从容器创建镜像

docker commit gitlab gitlab_jw:V1.0.0

②列出当前主机存在的所有docker镜像

docker images

在这里插入图片描述
③创建保存镜像的文件夹

mkdir gitlab_image_save

④ 将docker容器保存到镜像gitlab_jw:V1.0.0

docker save -o gitlab_jw_V1.0.0.tar gitlab_jw:V1.0.0

⑤load

⑥run+修改密码

三、其他

  • docker 【Ubuntu 20.04 LTS】安装Docker_ubuntu20.04安装docker-CSDN博客
  • 如何使用docker在ubuntu22.04中搭建Gitlab(无坑版) - 知乎 (zhihu.com)
  • 如何使用docker在ubuntu22.04中搭建Gitlab(无坑版) - 知乎 (zhihu.com)
  • Docker 保存与发布(commit, save, load)_docker commit保存为文件-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/65009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人零售 4G 工业无线路由器赋能自助贩卖机高效运营

工业4G路由器为运营商赋予 “千里眼”,实现对贩卖机销售、库存、设备状态的远程精准监控,便于及时补货与维护;凭借强大的数据实时传输,助力深度洞察销售趋势、优化库存、挖掘商机;还能远程升级、保障交易安全、快速处理…

zabbix监控山石系列Hillstone监控模版(适用于zabbix7及以上)

监控项: 触发器: 监控数据如下:

【论文阅读笔记】Scalable, Detailed and Mask-Free Universal Photometric Stereo

【论文阅读笔记】Scalable, Detailed and Mask-Free Universal Photometric Stereo 前言摘要引言Task 相关工作方法SDM-UniPS预处理尺度不变的空间光特征编码器像素采样变压器的非局部交互 PS-Mix数据集 实验结果训练细节评估和时间: 消融实验定向照明下的评估没有对…

【MySQL】7.0 入门学习(七)——MySQL基本指令:帮助、清除输入、查询等

1.0 help ? 帮助指令,查询某个指令的解释、用法、说明等。详情参考博文: 【数据库】6.0 MySQL入门学习(六)——MySQL启动与停止、官方手册、文档查询 https://www.cnblogs.com/xiaofu007/p/10301005.html 2.0 在cmd命…

网络基础知识--4

什么是PBR? 1.定义 PBR(Policy - Based Routing)即策略路由。它是一种网络技术,允许网络管理员根据自己定义的策略来转发数据包,而不是仅仅依赖于传统的基于目的地址的路由方式。通过 PBR,网络管理员可以灵活地控制…

2024最新鸿蒙开发面试题合集-HarmonyOS NEXT Release(API 12 Release)

1. HarmonyOS应用打包后的文件扩展名是? 打包后的文件扩展名为.hap(HarmonyOS Ability Package),这是HarmonyOS应用的标准包格式 2. 页面和自定义组件生命周期有哪些? 页面和自定义组件生命周期说明 有Entry装饰器的component组件的生命…

低代码开源项目Joget的研究——基本概念和应用

大纲 1. 基本概念1.1 Form1.1.1 Form1.1.1.1 概述1.1.1.2 主要特点和用途1.1.1.3 创建和使用 Form1.1.1.4 示例 1.1.2 Section1.1.2.1 概述1.1.2.2 主要特点和用途1.1.2.3 示例 1.1.3 Column1.1.4 Field1.1.5 示例 1.2 Datalist1.2.1 Datalist1.2.1.1 主要特点和用途1.2.1.2 创…

单机游戏《野狗子》游戏运行时提示dbghelp.dll缺失是什么原因?dbghelp.dll缺失要怎么解决?

《野狗子》游戏运行时提示dbghelp.dll缺失:原因与解决方案 在畅游《野狗子》这款引人入胜的游戏世界时,突然遭遇“dbghelp.dll缺失”的错误提示,无疑会给玩家的探险之旅蒙上一层阴影。作为一名深耕软件开发领域的从业者,我深知此…

Marscode AI辅助编程

直接使用Marscode的云服务来开发,也是很方便的,不用担心配置环境的问题,很适合初步学习,在任何设备都能开发。 番茄钟 请你基于html、tailwind css和javascript,帮我设计一个“番茄时钟”。要求UI简洁美观大方&#x…

使用Vue的props进行组件传递校验时出现 Extraneous non-props attributes的解决方案

作者:CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境:WebStorm 目录 出现错误的情况 报错: 代码: 报错截图 原因分析 解决方案 方法一 方法二 出现错误的情况 以下是我遇到该错误时遇到的报错和代码&…

后端-redis

Redis RedisString类型String类型的常用命令 Hash类型Hash类型的常用命令 List类型List类型的常用命令 Set类型Set类型的常用命令 SortedSet类型SortedSet类型的常用命令 Redis序列化缓存更新策略缓存穿透缓存雪崩缓存击穿 Redis Redis是一个key-value的数据库,key…

Android 代码模式的理解

定义:给目标对象提供一个代理对象,并由代理对象控制目标对象的引用 目的:通过引入代理的方式来间接访问目标对象,防止直接访问目标对象给系统带来不确定的复杂性 静态代理:编译时就确定了被代理的类是哪一个动态代理&…

基于卷积神经网络融合Inception模块的人脸识别

👲👲作者主页:🔗杰森的博客 📒📒本文摘要:基于卷积神经网络融合Inception模块的人脸识别,原理分享 💖💖如果本文帮助到你的话,还请各位小伙伴&…

ffmpeg之显示一个yuv照片

显示YUV图片的步骤 1.初始化SDL库 目的:确保SDL库正确初始化,以便可以使用其窗口、渲染和事件处理功能。操作:调用 SDL_Init(SDL_INIT_VIDEO) 来初始化SDL的视频子系统。 2.创建窗口用于显示YUV图像: 目的:创建一个…

php的线程安全与非线程安全版本的区别

PHP的线程安全(Thread Safe,简称TS)与非线程安全(Non-Thread Safe,简称NTS)版本主要在多线程环境下的行为特性、性能、以及适用场景上存在差异。以下是两者的详细对比: 一、定义与概念 线程安…

iDP3复现代码模型训练全流程(一)——train_policy.sh

iDP3 核心脚本包括三个:deploy_policy.sh、vis_dataset.sh、train_policy.sh,分别代表了部署、预处理和训练,分别作为对应 py 脚本的参数设置前置环节 训练环节仅需运行指令: # 3d policy bash scripts/train_policy.sh idp3 gr1…

链原生 Web3 AI 网络 Chainbase 推出 AVS 主网, 拓展 EigenLayer AVS 应用场景

Chainbase AVS 主网的正式上线,正在将 Chainbase 不同的层进行深入的串联,为 Chainbase 数据网络带来了验证和处理方面的应用与拓展的能力,并成为数据体系全面启动的新契机。 在 12 月 4 日,链原生的 Web3 AI 数据网络 Chainbase …

Rasa框架的优点和缺点

优点 1. 开源和免费 Rasa 是开源的,无需支付许可费用,可自由下载和修改源码,适合预算有限或需要定制化解决方案的团队。企业可以完全掌控自己的对话系统,无需依赖外部服务。 2. 数据隐私和安全 Rasa 支持完全本地部署&#xf…

如何提高永磁电动机的节电效果

在现代工业和家庭应用中,永磁电动机因其优越的性能和节能特性,逐渐成为主流选择。随着能源日益紧缺和环境问题的日益严重,寻求高效的电动机节能方案显得尤为重要。 一、永磁电动机的基本原理 永磁电动机的核心是永磁体,这些永磁…

Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码 【AI辅助开发系列】

🎀🎀🎀【AI辅助编程系列】🎀🎀🎀 Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…