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= V E R S I O N S T R I N G d o c k e r − c e − c l i = VERSION_STRING docker-ce-cli= VERSIONSTRINGdocker−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+修改密码

三、其他

相关推荐
乙己4074 小时前
计算机网络——网络层
运维·服务器·计算机网络
qzhqbb6 小时前
web服务器 网站部署的架构
服务器·前端·架构
不会飞的小龙人6 小时前
Docker Compose创建镜像服务
linux·运维·docker·容器·镜像
不会飞的小龙人6 小时前
Docker基础安装与使用
linux·运维·docker·容器
张3蜂6 小时前
docker Ubuntu实战
数据库·ubuntu·docker
果果开发ggdoc.cn7 小时前
WordPress免费证书插件
服务器·https·ssl
小歆8848 小时前
100%全国产化时钟服务器、全国产化校时服务器、全国产化授时服务器
运维·服务器
hgdlip8 小时前
IP属地与视频定位位置不一致:现象解析与影响探讨
服务器·网络·tcp/ip
0xfather9 小时前
在Debian系统中安装Debian(Linux版PE装机)
linux·服务器·debian
Again_acme9 小时前
20250118面试鸭特训营第26天
服务器·面试·php