设置密码,然后通过 root + password 登录,当然也可以自己新建用户。
之后,将要访问此GitLab的服务器上的公钥添加进来就可以进行愉快的玩耍了 (Linux 系统一般在 /root/.ssh 目录下,Windows一般在 C:\Users\用户名.ssh 目录下)
当你完成以上 *** 作之后,你会发现你仓库中的SSH和HTTP地址是下图这样的,所以我们要对GitLab进行IP显示的配置及端口配置。
修改如下项
修改 gitlab.rb
当你完成以上配置后,还是不能通过 http:// ip location : prot 来访问你的GitLab仓库。
修改GitLab ngnix 监听端口
完成以上设置之后,就可以通过 IP + PORT 来访问你的GitLab库了,同时仓库的HTTP地址显示也正常
修改SSH端口首先要修改服务器的SSH端口,这会影响到 Xshell 对服务器的连接。
完成以上 *** 作之后,一切就都正常了
查看是否拉取成功
编写内容
在该文件目录下,授予 gitlab_start.sh 执行权限
要注意端口是否被占用
修改 gitlab_start.sh 文件,将映射到宿主机的端口改为 8088 ,或者其它没被占用的端口
重新运行 ./gitlab_start.sh 文件,报错如下
这是因为之前的容器虽然没有运行起来,但是已经创建了,把它删除掉
重新运行 gitlab_start.sh 文件
可以看到容器成功启动
创建 docker-compose.yml 文件,并在该文件所在的文件夹目录下运行 docker-compose up -d
需要事先安装 docker-compose
安装docker-compose
注 :端口和映射目录可根据需要修改
若开放访问端口为 80 , external_url 可不加端口号,默认80
若以 3.1 方法创建,需要修改相关配置文件
在Gitlab容器 运行状态 时,重启服务,并远程访问网站测试
*若访问Gitlab出现502等错误,使用命令检查错误原因
e.g.
查看上述配置文件,查找错误原因
[图片上传失败...(image-e9789-1636370071222)]
虽然容器启动成功,但是却没办法根据 ip:port 访问gitlab
拉取tomcat镜像
为了测试8088端口是否可用,先把gitlab的容器暂停
启动tomcat容器,并将tomcat容器的8080端口映射到宿主机的8088端口
一切正常,访问ip:8088,还是和以前一样访问不了
因为之前系统的防火墙一直是关闭的并且其它的服务能正常访问,所以没有怀疑是防火墙的问题
把防火墙打开
访问之前能正常访问的服务,果然没法正常访问。
把该服务的端口开发,正常访问。
打开8088端口
再次访问
返回tomcat的404页面: HTTP Status 404 – Not Found
虽然是404页面,但是说明此时的端口是能正常访问的
把tomcat的容器停止运行,重新运行gitlab容器
虽然没启动成功,但离成功更进一步了:)
尝试把这个容器删除掉,再创建一次后还是得到这个错误。
还是访问不了,检查一下GitLab内部是否有问题
一切正常
我再次换成tomcat容器进行测试,发现8088端口访问不了了。
但是在宿主机内ping本机是可以的
但是,换成 ip:8088 则不行
根据以上两篇文章,提出 阿里云的内网eth0 网段正好跟Docker 的虚拟网卡都是 172 网段,有冲突
观察发现我使用的云服务器也是阿里云,并且通过 ifconfig 查看
并且查看阿里云的内网ip确实也是 172 开头。
编辑配置文件 /etc/docker/daemon.json ,若 daemon.json 文件不存在新建即可。
重新启动docker服务
可以看到docker0 的地址变了。
但是要注意,使用 docker 启动的服务会默认使用 docker0 ,如果是用 docker-compose 启动的服务则不会。上面的 br-12aa369ee4a6 对应的是docker-compose启动的服务,可以看到还是172的网段。
docker-compose up使用自定义的网段的两种方式(从其根源指定)
根据该文使用方法2,即修改 daemon.json 。但并不能成功访问,我的环境是: docker:20.10.7 , docker-compose:1.24.1
后面发现访问不成功的原因在于 docker 与防火墙之间的关系,可以关掉防火墙,开启 docker ,不能访问则打开防火墙。在它们之间来回试探 = =。
后面尝试过关闭 firewalld ,打开 iptables 。
在启用 iptables 时,一般关掉 iptables 可以正常访问,打开则不能正常访问。
在启用 firewalld 时,按照 docker 和 firewalld 之间启动关闭的顺序不同,有时是开着防火墙能访问,有时是关了防火墙能访问。
但是容器内不能访问外部网络,该问题现在还未解决。 有一种迂回的解决方法就是容器使用 host 网络模式
问题 :怀疑是docker,firewalld与iptables之间的设置问题
Docker与IPtables
docker 端口映射 及外部无法访问问题
Docker and IPtables
还有一种访问不了GitLab的情况是端口映射和配置文件有误。
快速的解决方法:将宿主机端口号和容器号设置相同,可参考下面的博客。
利用GitLab Docker images安装GitLab(填坑)
[图片上传失败...(image-457ad3-1636370071221)]
如果系统环境正常,安装会十分顺利,一般不会有奇怪的问题。
我在不同的服务器安装过
阿里云 CentOS 7.6 : 访问正常,但是因内存不够出现502错误,容器内可正常连接外部网络
阿里云 Alibaba Cloud Linux 2 : 可能不能正常访问容器,容器内不能正常连接外部网络。怀疑是防火墙与docker的问题。
修改密码:
想复杂了。
搜索了一圈,其实是基本原理没理解到位。
git clone git@xxx.com:group/project.git 实际使用的是SSH协议。多个认证文件存在时,通常需要在config文件中进行类似如下的配置——
需要强调的是: Port端口值是SSH服务的端口,只有在SSH服务的默认端口变更是才需要进行显示配置
自己搭建的环境使用的路由器自带的 DMZ 功能(路由器下的内网中的某台机器作为路由器绑定的静态ip的服务提供商。简单理解为——此静态ip提供的所有服务实际上都来自某台指定的内网机器)
搭建的gitlab服务使用的web服务端口是9527,而不是默认的80端口。使用http地址进行git *** 作时,提供用户名、密码可以正常进行 *** 作。添加了ed25519格式的SSH key后,一直提示 kex_exchange_identification: Connection closed by remote host 的错误。执行 ssh -vT git@stf.geb-corp.com 测试时,提示如下详细信息。配置生效了,
可以在nginx的log下看到 10.115.8.73 - - [27/Apr/2021:16:00:41 +0800] "- -" 400 150 "" "-" 这样的信息。
实际上就只是端口配置错误了而已~~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)