-
搜索相关Gitlab镜像,以免错过更好的第三方镜像
docker search gitlab
-
下载选定的Gitlab镜像,这里我们选择下载量最多的官方镜像,如果未指定版本则默认为最新版本,
latest
版本docker pull gitlab/gitlab-ce
-
运行镜像
docker run -d -p 80:80 -p 2222:22 -v $PWD/gitlab/config:/etc/gitlab -v $PWD/gitlab/logs:/var/log/gitlab -v $PWD/gitlab/data:/var/opt/gitlab --name gitlab --restart always --privileged=true gitlab/gitlab-ce
容器启动后,会进行大量的初始化,尝试访问宿主机
80
端口,大约几分钟后会出现一个确认初始化root
用户密码的界面,先输入初始化密码,之后回到容器这边,修改$PWD/gitlab/config/gitlab.rb
文件,配置克隆地址等# 配置`http协议`的访问地址 external_url 'http://192.168.1.113' # 配置ssh协议访问地址 gitlab_rails['gitlab_ssh_host'] = '192.168.1.113' # 配置ssh协议访问端口,此端口是启动容器时宿主机22端口映射给容器的2222端口 gitlab_rails['gitlab_shell_ssh_port'] = 2222
-
端口配置
但在我们大多数的场景中可能没有80
端口可以使用了,因此我们需要将gitlab
设置为其他端口如8081
docker run -d -p 8081:80 -p 2222:22 -v $PWD/gitlab/config:/etc/gitlab -v $PWD/gitlab/logs:/var/log/gitlab -v $PWD/gitlab/data:/var/opt/gitlab --name gitlab --restart always gitlab/gitlab-ce
容器启动后,尝试访问宿主机
8081
端口,直到出现一个确认初始化root用户密码的界面(确认初始化完毕),之后修改$PWD/gitlab/config/gitlab.rb
文件# 配置`http协议`的访问地址,端口为宿主机映射端口 external_url 'http://192.168.1.113:8081' # 配置ssh协议访问地址 gitlab_rails['gitlab_ssh_host'] = '192.168.1.113' # 配置ssh协议访问端口,此端口是启动容器时宿主机22端口映射给容器的2222端口 gitlab_rails['gitlab_shell_ssh_port'] = 2222
由于gitlab将默认的端口更改为
8081
后,我们需要重新生成容器docker stop gitlab docker rm gitlab # 修改容器内的端口为8081 docker run -d -p 8081:8081 -p 2222:22 -v $PWD/gitlab/config:/etc/gitlab -v $PWD/gitlab/logs:/var/log/gitlab -v $PWD/gitlab/data:/var/opt/gitlab --name gitlab --restart always gitlab/gitlab-ce
-
HTTPS支持(同时也相当于做了一个端口转发配置,更改了默认端口)
docker run -d -p 8443:443 -p 8081:80 -p 2222:22 -v $PWD/gitlab/config:/etc/gitlab -v $PWD/gitlab/logs:/var/log/gitlab -v $PWD/gitlab/data:/var/opt/gitlab --name gitlab --restart always gitlab/gitlab-ce
容器启动后,尝试访问宿主机
8081
端口,直到出现一个确认初始化root用户密码的界面(确认初始化完毕),之后修改$PWD/gitlab/config/gitlab.rb
文件# 配置`https协议`的访问地址,端口为宿主机映射端口 external_url 'https://192.168.1.113:8443' # 配置ssh协议访问地址 gitlab_rails['gitlab_ssh_host'] = '192.168.1.113' # 配置ssh协议访问端口,此端口是启动容器时宿主机22端口映射给容器的2222端口 gitlab_rails['gitlab_shell_ssh_port'] = 2222 # gitlab支持https是通过nginx实现的 nginx['redirect_http_to_https'] = true nginx['redirect_http_to_https_port'] = 80 nginx['listen_port'] = 443
如果使用https模式git客户端需执行
git config --global http.sslVerify false
,否则克隆时会报错SSL certificate problem: self signed certificate
-
用户配置(本地下载安装
git
客户端工具)-
HTTP协议
目录中右键,选择Git Bash Here
,执行克隆代码# gitlab项目中的http协议克隆地址 git clone https://192.168.1.113:8443/money/test.git
系统会弹出用户名密码的输入框,输入正确的用户名密码后,系统会保存凭据(控制面板 -> 凭据管理器 -> window凭据)以方便后续的
pull/push
等操作 -
-
SSH协议
目录中右键,选择Git Bash Here
,生成密钥对,再通过将密钥的公钥与gitlab用户绑定,即可通过生成的密钥对中的存在于本地的私钥与gitlab服务器建立信任的通信,这样同一密钥对可向多个远程代码库建立信任的通信,同时也不需要多余的用户名密码等# 生成密钥对,-C代表注释内容,我这里使用的用户名 ssh-keygen -t rsa -C root
后面直接回车,但需注意密钥对生成的路径,一般情况为(与系统使用的用户相关):
C:\Users\Administrator
,进入密钥目录,复制公钥id_rsa.pub
的内容;接着进入gitlab的web界面的用户
->设置
->SSH Keys
,添加复制的公钥内容;最后选择Git Bash Here
,执行克隆代码git clone ssh://git@192.168.1.113:2222/money/test.git
会让你确认是否建立连接,输入
yes
,在密钥对生成的路径中会多生成一个文件known_hosts
,存储无需确认的连接信息
Docker 安装Gitlab
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...