Docker安装GitLab的SSH配置

GitLab是一个基于Web的Git仓库管理工具,提供了版本控制、 issue 跟踪和持续集成服务。通过Docker安装GitLab可以快速搭建GitLab服务,并且方便进行管理和扩展。本文将详细介绍如何在Docker上安装GitLab并进行SSH配置。

安装Docker

首先,你需要在你的系统上安装Docker。可以从[Docker官网](

拉取GitLab镜像

安装完Docker后,第一步是拉取GitLab的Docker镜像。在终端中运行以下命令:

docker pull gitlab/gitlab-ee:latest
  • 1.

这条命令将会下载最新版本的GitLab企业版Docker镜像。

运行GitLab容器

接着,使用以下命令来运行GitLab容器。我们将用-d选项使容器在后台运行,并指定主机的端口与容器的端口进行映射。

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-ee:latest
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

在这个命令中:

  • --hostname指定了GitLab的主机名。
  • --publish选项将容器的端口映射到主机的端口。
  • --volume选项用于持久化数据存储。

配置SSH访问

在GitLab中使用SSH进行代码推送和拉取是一个常见的需求。默认情况下,GitLab使用22端口进行SSH连接。如果你的服务器上已经在使用22端口,你可以修改GitLab的SSH端口。

  1. 进入GitLab容器:
docker exec -it gitlab bash
  • 1.
  1. 编辑配置文件 /etc/gitlab/gitlab.rb

使用喜欢的文本编辑器打开文件,修改SSH端口(如果需要),或者配置GitLab使用默认的22端口。

vim /etc/gitlab/gitlab.rb
  • 1.

在文件中添加或修改以下行:

gitlab_rails['gitlab_ssh_port'] = 2222  # 自定义SSH端口,例如2222
  • 1.
  1. 重新配置GitLab:

完成后,运行以下命令重新配置GitLab:

gitlab-ctl reconfigure
  • 1.
  1. 重启GitLab服务:
gitlab-ctl restart
  • 1.

生成和添加SSH密钥

为了能够通过SSH连接到GitLab,我们需要生成SSH密钥,并将公钥添加到GitLab中。

  1. 生成SSH密钥

如果你还没有SSH密钥,可以使用以下命令生成一个:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 1.

运行命令后,按回车键以使用默认文件路径,并设置密码(可选)。

  1. 添加SSH公钥到GitLab

复制公钥内容:

cat ~/.ssh/id_rsa.pub
  • 1.

登录你的GitLab账号,点击右上角头像,选择“Preferences”,然后选择“SSH Keys”。将公钥粘贴到输入框中,然后点击“Add key”。

测试SSH连接

配置完成后,我们可以测试SSH连接是否成功。打开终端,运行以下命令:

ssh -T git@<gitlab_hostname>
  • 1.

替换<gitlab_hostname>为你在第一次运行容器时设置的主机名或IP地址。如果一切正常,你会看到欢迎信息。

关系图

下面是GitLab与Docker的关系图,帮助理解它们的交互过程:

GITLAB string username string email string ssh_key DOCKER string container_name string volumes string ports runs_in

结尾

通过Docker安装GitLab的过程虽然看似复杂,但实际上,借助Docker的便利性,我们可以以相对简单的方式搭建自己的代码仓库。本文详细介绍了GitLab的安装步骤及SSH配置,要想高效地利用GitLab,掌握这些知识是非常必要的。希望本文能为你的GitLab使用提供帮助!