场景
CentOS7中Docker的安装与配置:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119028701
首先按照上面在CentOS7中安装Docker
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
1、搜索镜像
docker search gitlab
2、拉取镜像
docker pull gitlab/gitlab-ce
拉取完成后查看
docker images
3、服务器上创建数据卷映射路径
mkdir -p /docker/gitlab/config mkdir -p /docker/gitlab/logs mkdir -p /docker/gitlab/data
创建好目录后,要赋予权限
chmod 777 -R /docker/gitlab/
4、启动容器
docker run -d --name gitlab -p 2222:22 -p 8888:80 -p 8443:443 -v /docker/gitlab/config:/etc/gitlab -v /docker/gitlab/logs:/var/log/gitlab -v /docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
说明:
-d //启动在后台
--name //容器名字
-p //端口映射
-v //数据卷挂载映射
5、访问gitlab
浏览器访问
会出现如下页面
说明gitlab还没准备好,等个几分钟。
再次访问就可以了。
6、获取密码
访问成功后需要获取初始化的密码
进入容器并获取密码
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
输出的一长串就是密码,用户名是root
登录成功之后修改密码为自己的密码比如12345678
此时Gitlab还没法直接使用,在gitlab上新建仓库并复制克隆地址时发现
此时的仓库地址的ip并不是服务器的ip而是容器的id,这时的仓库路径是没法使用的。
怎样修改。
首先进入容器并编辑gitlab.rb文件
sudo docker exec -it gitlab editor /etc/gitlab/gitlab.rb
然后按i编辑该文件
修改如下三个地方
external_url 'http://192.168.148.133:8888' gitlab_rails['gitlab_ssh_host'] = '192.168.148.133' gitlab_rails['gitlab_shell_ssh_port'] = 2222
这里是修改外部的url地址和端口
修改ssh的ip和端口
保存并退出后如果此时还是直接再重启容器会发现无法访问。
因为已经修改了外部的url以及端口
external_url 'http://192.168.148.133:8888'
此时端口已经为8888
而启动命令中
docker run -d --name gitlab -p 2222:22 -p 8888:80 -p 8443:443 -v /docker/gitlab/config:/etc/gitlab -v /docker/gitlab/logs:/var/log/gitlab -v /docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
还是使用的宿主机的8888端口映射的容器内的80端口,而修改了external_url 就已经修改了容器内gitlab默认的80端口。
所以停止并删除容器
docker stop gitlab
docker rm gitlab
然后重新启动,映射内部端口为8888
docker run -d --name gitlab -p 2222:22 -p 8888:8888 -p 8443:443 -v /docker/gitlab/config:/etc/gitlab -v /docker/gitlab/logs:/var/log/gitlab -v /docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
此时拉取代码仓库并提交推送都没有问题
官方教程地址: