-
docker拉取gitlab
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
-
更改配置信息
// 添加-a 参数,把启动的,没有启动的都列出来 docker ps // 进入容器 docker exec -it gitlab bash //先进入到gitlab目录 cd /etc/gitlab //编辑gitlab.rb文件 vim gitlab.rb(拉取下来的镜像启动后的容器内部本身的gitlab.rb文件信息都是注释的,放开即可) // 在gitlab创建项目时候http地址的host(不用添加端口) external_url 'http://xx.xx.xx.xx' //配置ssh协议所使用的访问地址和端口 gitlab_rails['gitlab_ssh_host'] = '192.168.XX.XX' //和上一个IP输入的一样 gitlab_rails['gitlab_shell_ssh_port'] = 8022 // 此端口是run时22端口映射的8022端口 :wq //保存配置文件并退出 // 文件路径 /opt/gitlab/embedded/service/gitlab-rails/config //先进入到config目录下 cd /opt/gitlab/embedded/service/gitlab-rails/config //打开编辑gitlab.yml文件 vim gitlab.yml //修改host 与上面.rb文件修改的一致 // 修改port 为8090
-
重新启动
// 容器内重启 gitlab-ctl restart // 容器外重启 docker restart gitlab
-
服务器开放端口
开放端口:8090
-
测试运行
在浏览器地址里输入 http://Ip:8090 //容器外停止 docker stop gitlab // 这里的gitlab 就是我们上一步docker run 当中使用--name 配置的名字 //容器外重启 docker restart gitlab //进入容器命令行 docker exec -it gitlab bash //容器中应用配置,让修改后的配置生效 gitlab-ctl reconfigure //容器中重启服务 gitlab-ctl restart
-
将这个gitlab容器迁移到另外一个服务器上,并且把数据备份
-
查看容器名称和容器ID
docker ps
-
查看容器对应的挂载目录
docker inspect gitlab | grep Mount -A 20 docker inspect 641d16e052b3 | grep Mount -A 20
-
得到宿主机与容器的映射关系,方便我们在宿主机内更改配置文件
-
进入容器并将数据备份
//进入容器 docker exec -it gitlab /bin/bash //进入目录 cd /var/opt/gitlab/backups // 生成数据备份文件,生成的文件是.tar文件,类似1598965868_2020_09_01_13.3.2_gitlab_backup.tar gitlab-rake gitlab:backup:create // 上面的备份命令并不会把配置额文件一起备份,需要我们手动的将配置文件给保存下来 // 进入/etc/gitlab,找到以下文件 gitlab.rb gitlab-secrets.json // 其实可以退出到宿主机,然后找到其映射文件目录里面再继续找到这两个文件,并将其进行备份,也可以使用docker cp命令将需要备份的文件给保存起来 //数据备份完成后要不要把当前容器给停止了,就看你的选择了
-
进入新的服务器,确保新服务器上已经安装好了docker
-
在上一个服务器中查看gitlab容器所用镜像的版本,确保两个服务器docker中使用的gitlab镜像是一致的
方案一 使用docker images 查看镜像名称和版本信息然后去拉取 或者使用 docker exec gitlab gitlab-rake gitlab:env:info 查看gitlab版本信息 方案二 在服务器1中把gitlab容器导出为镜像的tar文件,然后再在服务器2中给引入,不过后续处理可能会存在问题
-
这里就继续docker拉取了
docker pull twang2218/gitlab-ce-zh
-
创建挂载目录
mkdir -p /data/gitlab/config mkdir -p /data/gitlab/logs mkdir -p /data/gitlab/data 如果你不想挂载那么多目录的话,可以只创建/data/gitlab目录
-
启动容器
docker run --detach \ --privileged=true \ --hostname 192.168.201.129 \ --publish 443:443 --publish 80:80 --publish 2222:22 \ --name gitlab --restart always \ --volume /data/gitlab/config:/etc/gitlab \ --volume /data/gitlab/logs:/var/log/gitlab \ --volume /data/gitlab/data:/var/opt/gitlab 3494787883fd --detach 指定容器后台运行 --privileged=true 使用--privileged=true参数可以给Docker容器添加宿主机的root权限。这样,容器就可以在宿主机中获取更高的权限,包括读写文件权限。 --hostname 指定主机地址 --publish 指定端口映射,冒号前代表宿主机的端口,冒号后代表容器的端口 --name 容器的名字 --restart always 总是重启 --volume 指定数据卷 最后那一串东西是docker image的id 用来指定使用那个镜像,也可以使用镜像名称加版本号 ps:如果启动失败的话,可以查看报错日志 docker logs -f gitlab
-
启动容器后就是把刚才的备份文件放到对应的目录,看一下自己容器启动时候的映射目录
上传前面的备份文件和配置文件到对应目录 /data/gitlab/data/backups /data/gitlab/config 将备份文件权限修改为777,不然可能会报权限不足导致恢复备份失败 chmod 777 1598965868_2020_09_01_13.3.2_gitlab_backup.tar
-
进入容器,先停止相关数据连接服务,加载备份文件文章来源:https://www.toymoban.com/news/detail-775155.html
进入容器 docker exec -it gitlab /bin/bash 停止相关数据连接服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq 进入目录/var/opt/gitlab/backups,因为备份在这个目录下 cd /var/opt/gitlab/backups 加载备份文件,注意等号后面只需到文件编号,不用整个文件名 gitlab-rake gitlab:backup:restore BACKUP=1598965868_2020_09_01_13.3.2 等待备份文件加载完成即可,中间会出现几次交互,大概意思就是加载备份会删除现有数据,是否确定,都输入yes就可以 重新加载配置 gitlab-ctl reconfigure 退出容器 exit 开放端口8090 查看容器运行状态 docker ps 浏览器中测试 如果不行就在容器外重启 docker restart gitlab
-
处理gitlab磁盘IO 100%!文章来源地址https://www.toymoban.com/news/detail-775155.html
进入配置文件gitlab.rb中进行修改 unicorn['worker_timeout'] = 60 unicorn['worker_processes'] = 2 unicorn['worker_memory_limit_min'] = "100 * 1 << 20" unicorn['worker_memory_limit_max'] = "250 * 1 << 20" sidekiq['concurrency'] = 8 postgresql['shared_buffers'] = "128MB" postgresql['max_worker_processes'] = 4 prometheus['enable'] = false 重启gitlab
-
到了这里,关于docker中安装gitlab,并完成gitlab容器迁移包括相关数据备份的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!