用Docker安装Gitlab的方法步骤

 更新时间:2018年08月01日 14:21:50   作者:过了即是客  
这篇文章主要介绍了用Docker安装Gitlab的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Gitlab简介

GitLab是一个Git的代码托管工具,有免费的社区版允许我们在本地搭建代码托管网站,也有付费的企业版网站,能够在线托管代码。传统方式是手动下载Gitlab的软件包,然后搭建相关运行环境。不过这种方式非常麻烦,而且如果要更换机器所有配置工作又得重来一边,如果有同学学过Java的话应该记得初学Java时配置环境变量的恐惧吧?因此更好的办法就是使用现在非常流行的Docker。

那么Docker又是个什么东西呢?这是一个虚拟化的运行工具,主要目的是将软件和整个运行环境打包起来,让我们不需要配置即可快速运行软件。由于Docker依赖于Linux内核的某些特性,所以Docker只能在Linux上运行。Windows上的Docker实际上是开了一个虚拟机。Docker目前好像没有比较好的中文社区,我谷歌了一下只找到了这个Docker中文社区,看起来还行。

安装docker

我用的是Archlinux,所以安装命令如下。

sudo pacman -S docker

如果使用其他系统的话需要改用相应的包管理工具。

安装好之后,来看看Docker的版本。

sudo docker version

应该会显示类似下面这样的信息。Docker客户端的版本最好在1.10以上。

Client:
 Version:  1.13.1
 API version: 1.26
 Go version: go1.7.5
 Git commit: 092cba3727
 Built:  Sun Feb 12 02:40:56 2017
 OS/Arch:  linux/amd64

Server:
 Version:  1.13.1
 API version: 1.26 (minimum version 1.12)
 Go version: go1.7.5
 Git commit: 092cba3727
 Built:  Sun Feb 12 02:40:56 2017
 OS/Arch:  linux/amd64
 Experimental: false

这样Docker就安装成功了。

使用阿里云加速Docker

Docker官方镜像网站部署在外网,因此我们国内下载比较慢。看了一下国内最好的Docker加速服务就是阿里云了。阿里云的其他镜像比如Maven镜像之类的也都不错。

首先需要注册一个阿里云的帐号,可能还需要其他一点信息。然后进入容器Hub服务控制台,中间有一个加速器。我们点击它之后,阿里云会为我们创建一个专属加速器地址。

然后需要检查Docker客户端的版本,如果小于1.10,只能按照自己系统版本寻找相应的办法了。如果大于等于1.10,就可以直接使用下面的配置方法。配置方法很简单,在/etc/docker/daemon.json中添加一段配置。如果没有该文件则创建。

{
 "registry-mirrors": ["<your accelerate address>"]
}

然后重启Docker服务。

sudo systemctl daemon-reload
sudo systemctl restart docker

下载Gitlab

配置好加速器之后,下载就很快了。直接执行下面的命令,稍等片刻之后,Docker就会将Gitlab下载好了。

sudo docker pull gitlab/gitlab-ce:latest

启动Gitlab

用下面的命令启动一个默认配置的Gitlab。如果我们只在本机测试使用的话,将hostname替换为localhost。如果需要让外部系统也能访问的话使用外网IP地址。

sudo docker run --detach \
 --hostname gitlab.example.com \
 --publish 443:443 --publish 80:80 --publish 22:22 \
 --name gitlab \
 --restart always \
 --volume /srv/gitlab/config:/etc/gitlab \
 --volume /srv/gitlab/logs:/var/log/gitlab \
 --volume /srv/gitlab/data:/var/opt/gitlab \
 gitlab/gitlab-ce:latest

首次启动可能比较慢,需要等待一分钟左右的时间。我们可以使用sudo docker ps命令查看当前所有Docker容器的状态。当它的状态由starting变为运行时间时,说明成功启动了。我们直接使用上面配置的IP地址(如localhost)在浏览器中访问即可。

初次使用需要我们创建默认管理员密码,随便指定一个就行了。然后我们需要注册一个普通用户。以后的使用方法和Github这样的工具很相似了。

配置Gitlab

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

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

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

sudo docker exec -it gitlab /bin/bash

然后就进入了Docker的环境中,我们可以把它当作一个独立的系统来使用。然后编辑/etc/gitlab/gitlab.rb文件,这是Gitlab的全局配置文件。所有选项都可以在这里配置。

nano /etc/gitlab/gitlab.rb

详细的配置方法我也不会,直接看官方文档吧。

更新Gitlab

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

sudo docker stop gitlab
sudo docker rm gitlab

然后在拉取最新版的Gitlab。

sudo docker pull gitlab/gitlab-ce:latest

然后在使用上次的配置运行Gitlab即可。不用担心数据会丢失。只要你的volume参数指定还和上次一样,Gitlab就会自动读取这些配置。

sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest

最后来看看使用Docker的优势。还是在Gitlab的Bash中。我们依次输入下面的命令,看看有什么反应。

ruby --version
git --version
redis-cli --version
psql --version

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

看到有个貌似不错的Docker教程,大家可以看看。

参考资料

https://www.jb51.net/article/131437.htm
https://docs.gitlab.com/omnibus/docker/README.html#gitlab-docker-images

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 通过Docker运行AnythingLLM的方法

    通过Docker运行AnythingLLM的方法

    这篇文章主要介绍了通过Docker运行AnythingLLM的方法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-12-12
  • Docker上部署Nginx的方法步骤

    Docker上部署Nginx的方法步骤

    本文主要介绍了Docker上部署Nginx的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 关于Docker Desktop的WSL报错问题解决办法

    关于Docker Desktop的WSL报错问题解决办法

    这篇文章主要介绍了关于Docker Desktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,文中将解决办法介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • docker通过Dockerfile构建mysql镜像的方法

    docker通过Dockerfile构建mysql镜像的方法

    这篇文章主要介绍了docker通过Dockerfile构建mysql镜像,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 使用Docker运行Microsoft SQL Server 2017的方法

    使用Docker运行Microsoft SQL Server 2017的方法

    本篇文章主要介绍了使用Docker运行Microsoft SQL Server 2017的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Docker数据卷挂载方式

    Docker数据卷挂载方式

    文章介绍了Docker数据卷的作用和使用方法,包括数据卷的创建、查看、删除以及挂载,数据卷的主要优点是将数据与容器分离,解耦合,便于操作容器内的数据,保证数据安全,通过挂载数据卷,可以在宿主机上修改容器中的数据,并且可以方便地进行数据的复用和升级维护
    2024-12-12
  • docker磁盘空间不足的解决办法

    docker磁盘空间不足的解决办法

    linux的磁盘空间挂载后,需要迁移一下docker 镜像原本的位置,因此有此实践,分享操作过程,文章通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • 在Dockerfile中copy和add的区别及说明

    在Dockerfile中copy和add的区别及说明

    COPY和ADD都是Dockerfile中用于文件复制的命令,但COPY仅用于本地文件或目录的复制,不支持自动解压缩;而ADD除了复制本地文件或目录外,还支持解压缩和从URL下载文件,在一般情况下,建议使用COPY命令
    2025-03-03
  • 使用docker指令如何删除所有不再使用的镜像

    使用docker指令如何删除所有不再使用的镜像

    这篇文章主要介绍了使用docker指令如何删除所有不再使用的镜像问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Docker consul的容器服务更新与发现的问题小结

    Docker consul的容器服务更新与发现的问题小结

    这篇文章主要介绍了Docker consul的容器服务更新与发现,讲解了服务注册与发现的基本概念讲解,本文给大家介绍的非常详细,需要的朋友可以参考下
    2021-08-08

最新评论