1、搜索Gitlab
docker search gitlab
2、下载Gitlab
sudo docker pull gitlab/gitlab-ce:latest
3、查看镜像文件
docker images
4、创建Gitlab挂载目录,在/root/docker/gitlab下分别创建config,logs,data目录,如下
5、创建docker中的网络
docker network create gitlab_net
6、使用镜像启动Gitlab容器
# 启动镜像
docker run --name='gitlab' -d \
       --net=gitlab_net \
       --publish 1443:443 --publish 18080:80 \
       --restart always \
       --volume /root/docker/gitlab/config:/etc/gitlab \
       --volume /root/docker/gitlab/logs:/var/log/gitlab \
       --volume /root/docker/gitlab/data:/var/opt/gitlab \
       gitlab/gitlab-ce:latest
7、登录Gitlab,IP为宿主机IP地址
如果访问上面的地址页面显示502,一般是端口冲突了,需要修改/root/docker/gitlab/config/gitlab.rb文件,重启docker容器即可。
unicorn['port'] = 8084
再次访问 http://192.168.121.129:18080地址,成功的话需要修改root账号的密码,随意设置即可。密码修改成功后,系统进入登录/注册页面
使用root登录后

配置Gitlab

刚刚启动Gitlab的时候需要我们输入一个密码,这个密码是管理员用户的密码。我们在登录那里使用root作为用户名,然后用刚刚设置的密码,就可以以管理员身份登录Gitlab。

登录进去之后,点击右上角的齿轮图标,即可进入到管理员页面。在这里我们可以设置很多东西。比如说,默认情况下每个用户只能创建10个仓库,我们可以改变这个设置。在管理员页面点击右面的齿轮,再点击设置,就会进入到系统设置中。然后找到Default projects limit一项,我们给它设个小目标,设它一个亿,这样就相当于无限仓库了。当然如果你实际硬盘满了也就不能在创建更多项目了。

如果这些配置还是不能满足你的需求的时候,还可以直接配置Gitlab。首先进入到Docker环境中。我们使用下面的命令进入Docker环境的bash中。gitlab是刚刚指定的Gitlab名称。

docker exec -it gitlab /bin/bash
然后就进入了Docker的环境中,我们可以把它当作一个独立的系统来使用。然后编辑 /etc/gitlab/gitlab.rb文件,这是Gitlab的全局配置文件。所有选项都可以在这里配置。
详细的配置方法请看 官方文档

更新Gitlab

以后如果需要更新Gitlab版本,首先需要停止并删除当前的Gitlab实例。

docker stop gitlab
docker rm gitlab
然后在使用上次的配置运行Gitlab即可。不用担心数据会丢失。只要你的volume参数指定还和上次一样,Gitlab就会自动读取这些配置。
docker run --name='gitlab' -d \
       --net=gitlab_net \
       --publish 1443:443 --publish 18080:80 \
       --restart always \
       --volume /root/docker/gitlab/config:/etc/gitlab \
       --volume /root/docker/gitlab/logs:/var/log/gitlab \
       --volume /root/docker/gitlab/data:/var/opt/gitlab \
       gitlab/gitlab-ce:latest
我们在Gitlab的Bash中。依次输入相应的命令,可看到下面的结果

我们看到Gitlab使用了4个开源软件或运行环境:ruby、git、redis和postgresql。如果我们手动安装Gitlab的话,这几个软件也必须分别安装和配置好。这个任务的难度可是非常大的。而且如果需要在多台机器上配置,那么任务量就更大了。但是如果使用Docker的话,我们甚至完全没必要知道这几个软件的存在,简单两条命令即可创建和运行Gitlab。这正是Docker的魅力,难怪现在越来越多的公司在使用Docker。


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐