# 安装docker
yum install -y docker
# 查询中文gitlab包
docker search gitlab-ce-zh
# 拉取镜像
docker pull twang2218/gitlab-ce-zh
# 运行
docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh
# 命令示意
docker run
-d #后台运行,全称:detach
-p 8443:443 #将容器内部端口向外映射
-p 8090:80 #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口
-p 8022:22 #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口
--restart always #容器自启动
--name gitlab #设置容器名称为gitlab
-v /usr/local/gitlab/etc:/etc/gitlab #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建
-v /usr/local/gitlab/log:/var/log/gitlab #与上面一样
-v /usr/local/gitlab/data:/var/opt/gitlab #与上面一样
--privileged=true #让容器获取宿主机root权限
twang2218/gitlab-ce-zh #镜像的名称,这里也可以写镜像ID
# 查看运行情况
[root@docker data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d213e178ac5c twang2218/gitlab-ce-zh "/assets/wrapper" 4 seconds ago Up 3 seconds (health: starting) 0.0.0.0:8022->22/tcp, 0.0.0.0:8090->80/tcp, 0.0.0.0:8443->443/tcp gitlab
# 进入容器
[root@docker data]# docker exec -it gitlab bash
root@d213e178ac5c:/# cd /etc/gitlab
root@d213e178ac5c:/etc/gitlab# vim gitlab.rb
external_url 'http://192.168.208.70'
gitlab_rails['gitlab_ssh_host'] = '192.168.208.70'
gitlab_rails['gitlab_shell_ssh_port'] = 8022
root@d213e178ac5c:/etc/gitlab# cd /opt/gitlab/embedded/service/gitlab-rails/config
root@d213e178ac5c:/opt/gitlab/embedded/service/gitlab-rails/config# vim gitlab.yml
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: 192.168.208.70
port: 8090
https: false
# Uncommment this line below if your ssh host is different from HTTP/HTTPS one
# (you'd obviously need to replace ssh.host_example.com with your own host).
# Otherwise, ssh host will be set to the `host:` value above
ssh_host: 192.168.208.70
root@d213e178ac5c:gitlab-ctl restart
root@d213e178ac5c:exit
离线安装-打包镜像
docker save -o 要打包名字.tar 镜像名字:版本号
docker load < 已打包的镜像名字.tar
docekr images
创建完GitLab用户后修改密码
# 进入容器内部
docker exec -it gitlab /bin/bash
# 进入控制台
gitlab-rails console -e production
# 查询id为1的用户,id为1的用户是超级管理员
# 如果所在网络为局域网无法查收邮件,可通过该方式为用户修改密码
user = User.where(id:1).first
# 修改密码为xxx
user.password='xxx'
# 保存
user.save!
# 退出
exit