远程环境使用docker部署gitlab总结

前置技巧:

查看当前运行的docker命令行

docker ps

查看当前所有的docker

docker ps -a

前置环境

在linux(本文是centos 7.9 64位)中安装docker

docs.docker.com/engine/inst...

在vscode中安装docker部署套件(不用这个,你在终端修改远程配置上万行的配置文件你会崩溃的!!)

这个套件我们本次用到的关键组成有:Remote-SSH和 Dev Containers

PS: 其中Remote-SSH使我们能够通过vscode打开远程服务器上的所有文件,Dev Containers使我们能够调试docker,想象一下把docker类比一个独立的liunx系统,只是和其他服务共用硬件资源而已,我们可能需要访问这个独立linux系统的各个配置文件,做一些修改,只用终端的话,这个过程实在太痛苦了!

安装完毕后,通过下图红框部分连接远程服务器:

再次链接的时候会提示你输入密码(我这里用的是阿里云),在控制台重置初始密码后,就可以用这个密码登录ssh了

连接上后会重新打开一个vscode窗口,提示不受支持OS,直接忽略就好了(以后服务器OS反正都会升级的,不用担心,),这个时候你就可以在vscode中浏览和编辑所有文件了!

在服务器上配置ssh相关密钥,目的是本地能通过ssh免密连接远程服务器

在本地ssh默认目录用如下命令生成密钥(我用的是ed25519密钥,也可以用rsa这些,mac下的ssh默认目录是 ~/.ssh)

ssh-keygen -t ed25519 -C [这是注释信息,随便填]

例子:

ssh-keygen -t ed25519 -C iwangcx.com

通过如下命令,将公钥复制到服务器上

scp [秘钥路径] [远程用户名]@[远程主机ip]:/.ssh

然后在vscode上将公钥里的内容另起一行添加到服务器~/.ssh目录下authorized_keys中

至此,下次链接ssh的时候再也不用输入密码了

通过docker安装gitlab

官网教程: docs.gitlab.com/ee/install/...

一般情况下通过官网操作都是正确的选择,我不知道为什么官网给的例子为什么会埋下很多坑 比如我们安装gitlab时多了下图红框部分的内容,导致我的docker一直在重启...并产生了系列的问题,差点让我崩溃!

正确的命令如下:

js 复制代码
  sudo docker run --detach \
  --hostname iwangcx.com\
  --env GITLAB_OMNIBUS_CONFIG="external_url='https:/iwangcx.com:8444'; gitlab_rails['gitlab_shell_ssh_port'] = 8444"\
  --publish 8080:8080 --publish 8443:8444 --publish 822:822 \
  --name gitlab \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  registry.gitlab.cn/omnibus/gitlab-jh:latest

其中的端口映射根据自己的来,比如8444:8444前面的是服务器外面的端口,后面是docker内部的端口

其他按照官网说的那样进行配置,其中注意external_url='https:/iwangcx.com:8444',使用https,这才是真实环境该有的样子。然后再外面linux服务期下查看启用的端口号:

netstat -tuln

可以看到8444,8081,822端口都处于监听状态(这里注意如果是阿里云,记得在阿里云官网打开端口,防止被墙),通过如下命令进入docker内部环境

docker exec -it gitlab /bin/bash

通过同样的命令查看端口号:

netstat -tuln

上图红框部分开始不是822的,不知道为什么,这个镜像哪怕向官网一样配置了自定义的端口号,发现最后起来的还是22,虽然gitlab的页面部分已经修改了,所以这里通过vscode修改/asserts/sshd_config文件的端口号

然后在终端重启docker里的ssh服务

service ssh restart

这个时候gitlab基本已经部署完毕,可以拉仓库了。

上过程坑的补充

加入在上述 过程,如果端口映射配错了,想修改端口映射可以按照如下方式修改:

zhuanlan.zhihu.com/p/94949253

  1. 整个docker搞错了,可以通过如下命令删除docker,重新弄,

docker rm [dockerId]

相关推荐
Initialize-le3 小时前
Nginx 504 超时、499 一堆?网关排查法
运维·nginx
Jmyd01234 小时前
Web端3D营销展厅技术实现路径:从素材上云到线索回流的数据链路
前端·3d·性能优化·三维数字化
砚凝霜5 小时前
【软考信息安全】第二十二章 Web服务器安全分析与增强——Apache与IIS
服务器·前端·安全
Android系统攻城狮5 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
快乐的韭菜根根5 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
U-Mail邮件系统6 小时前
自建邮箱服务器有哪些软件?三款主流邮件服务器软件推荐
运维·服务器
u0111026757 小时前
JPG、PNG、WebP 怎么选?按透明度、体积和使用场景做判断
前端·javascript·vue.js·图像处理·ai作画
jerrywus7 小时前
让 AI 写完代码后交一份报告:我改造了 answer-me-with-html
前端·claude·cursor
天远数科8 小时前
零信任架构实战:基于天远贷前风险报告构建自动化消金信贷风控与多头共债排查网关
运维·人工智能·架构·自动化
派小心.8 小时前
小程序分享链路中来源参数的传递校验
大数据·前端·数据库·人工智能·小程序·数据分析