在成功完成docker的基础实验之后,尝试着使用docker搭建自己的gitlab,用来存放自己的代码。本文主要介绍使用docker搭建gitlab过程中遇到的问题,我的服务器系统是:Ubuntu Server 14.04.1 LTS 64位

  在搭建过程中遇到了很多问题,比较突出的三个问题是:

  1.docker下载镜像缓慢,每次需要大概几个小时;

  2.docker下载完成之后,运行镜像服务器死机;

  3.docker安装并成功运行gitlab容器之后,访问gitlab发现一直出现502错误。

  下面将这三个问题穿插在安装搭建gitlab过程中进行解决,有的问题解决方案可能不止一种,也有的问题会与服务器的版本,服务器的配置相关。

一、gitlab镜像安装准备工作

  1.对于上述提到的第三个问题,因为我的服务器配置比较low(1G,50G),而GitLab对系统硬件有要求,主要就是内存大于2G,否则或碰到奇怪的错误。所以我经过几次尝试安装一直显示502错误(纠结了三四天,查了两天的资料)。没办法,穷啊,那只有找解决方案。终于找到一篇相关的文章小型云服务器搭建GitLab遇到的坑 ,核心思想是增加服务器的swap空间。这个问题竟然成功解决。

  查看内存信息:

sudo free -h
ubuntu@VM-50-13-ubuntu:~$ free -h
total used free shared buffers cached
Mem: 993M 181M 812M 376K 34M 77M
-/+ buffers/cache: 70M 923M
Swap: 0B 0B 0B

  可以看到swap的空间为0B ,接下来增加swap空间具体操作:

sudo -i # 切换root权限
dd if=/dev/zero of=/var/swap bs=1024 count=2048000 #分区大小设为2g
ls -lh /var/swap # 验证
mkswap /var/swap #启动分区
swapon /var/swap #激活

执行完上述命令,再次使用free -h命令可以看到Swap变成2GB

二、安装完成docker(可参考docker----起步)。

  在下载镜像的时候,发现下载的很慢,很捉鸡。需要配置加速器,docker----起步文章中配置的加速器,好像与我的系统似乎不搭噶,最后看腾讯云的镜像加速器才发现,我配置加速器的地方错了,因为我的系统是Ubuntu14 所以应该配置在/etc/default/docker中。最后我将加速器配置成阿里云的镜像加速器 在注册完成之后,我获得了我的专属加速器地址(虽然不知道真假),具体查看方式是,在容器镜像服务-->镜像加速器中可以看到。

vim /etc/default/docker #然后修改其中的DOCKER_OPTS

  如我的配置修改结果为:

# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--registry-mirror=https://dg9t1zch.mirror.aliyuncs.com" # 改地址为阿里云给我的镜像加速器地址

   重启docker服务后,然后执行 sudo docker info ,可以看到输出中有如下信息:

Registry Mirrors:
https://dg9t1zch.mirror.aliyuncs.com/

  然后下载镜像,我这里的镜像是阿里云上的一个镜像,执行命令,你会发现下载速度非常快:

docker run --detach \
--publish 443:443 --publish 10080: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 \
twang2218/gitlab-ce-zh:latest # 该镜像是aliyun上的一个镜像,地址https://cr.console.aliyun.com/#/imageDesc/cn-hangzhou/lab99/gitlab-ce-zh/detail

三、SSH端口和这里的22端口可能会有冲突,导致连接不上去,因此设置ssh端口为别的端口就可以了

vim /etc/ssh/sshd_config # 找到里边对应的Port,将22修改为1022或别的端口

  重启ssh服务。

  然后访问服务器地址+10080端口,有时候还是会出现502错误,需要稍等一会,然后重新刷新几次就可以了。

看到配置完成的gitlab特别开心=-=。

  

  

  

Docker----搭建自己的gitlab(填坑之旅)的更多相关文章

  1. 使用vue开发微信公众号下SPA站点的填坑之旅

    原文发表于本人博客,点击进入使用vue开发微信公众号下SPA站点的填坑之旅 本文为我创业过程中,开发项目的填坑之旅.作为一个技术宅男,我的项目是做一个微信公众号,前后端全部自己搞定,不浪费国家一分钱^ ...

  2. stm32填坑之旅 - stm32f103c8t6点亮板载贴片蓝色LED

    转载请注明:https://www.cnblogs.com/rockyf/p/11691622.html 开篇 开篇一定要精彩,不然路人不理睬!下述是笔者作为arm小白的填坑之旅 没错,这个之前一直从 ...

  3. bootstrap-table填坑之旅<一>认识bootstrap-table

    应公司需求,改版公司ERP的数据显示样式.由于前期开发的样式是bootstrap,所以选bootstrap-table理所当然(也是因为看了bootstrap-table官网的example功能强大, ...

  4. React Native填坑之旅--与Native通信之iOS篇

    终于开始新一篇的填坑之旅了.RN厉害的一个地方就是RN可以和Native组件通信.这个Native组件包括native的库和自定义视图,我们今天主要设计的内容是native库方面的只是.自定义视图的使 ...

  5. React Native填坑之旅--Flow篇(番外)

    flow不是React Native必会的技能,但是作为正式的产品开发优势很有必要掌握的技能之一.所以,算是RN填坑之旅系列的番外篇. Flow是一个静态的检查类型检查工具,设计之初的目的就是为了可以 ...

  6. React Native填坑之旅--布局篇

    代码在这里: https://github.com/future-challenger/petshop/tree/master/client/petshop/src/controller 回头看看RN ...

  7. https填坑之旅

    Boss说,我们买了个权威证书,不如做全站式的https吧,让用户打开主页就能看到受信任的绿标.于是我们就开始了填坑之旅. [只上主域好不好?] 不好...console会报出一大堆warning因为 ...

  8. React Native填坑之旅--Stateless组件

    Stateless component也叫无状态组件.有三种方法可以创建无状态组件. 坑 一般一个组件是怎么定义的: 很久以前的方法: const Heading = createClass({ re ...

  9. React Native填坑之旅--重新认识RN

    如同黑夜里的一道光一样,就这么知道了F8. F8是每年一次Facebook每年一次的开发者大会.每次大会都会release相应的APP,iOS.Android都有.之前都是用Native开发的,但是2 ...

随机推荐

  1. java 枚举2

    package com.wsy.test; public enum Color { RED("红色",1),GREEN("绿色",2),BLUE("蓝 ...

  2. Java8 list转map 坑

    Map<String , SonCargosForm> orderCargosMap = sonTemporaryForm.getOrderCargosList().stream() .c ...

  3. git 学习(4) ----- git rebase

    使用git rebase 的前提是多人协作下的分支开发,如果是单人开发,那就没有必要使用它了,这是由git rebase 的作用所决定的,git rebase 有两大作用:一个是与主分支保持同步,一个 ...

  4. Bootstrap 模态框(Modal)插件id冲突

    <!DOCTYPE html><html><head>    <meta charset="utf-8">     <titl ...

  5. BZOJ2406矩阵——有上下界的可行流+二分答案

    题目描述 输入 第一行两个数n.m,表示矩阵的大小. 接下来n行,每行m列,描述矩阵A. 最后一行两个数L,R. 输出 第一行,输出最小的答案: 样例输入 2 2 0 1 2 1 0 1 样例输出 1 ...

  6. php中的md5()的安全问题

    汇总下php中md5()的安全问题 安全问题1: 1.x=任意字符串  md5('x')=0e*** 2.y=任意字符串  md5('y')=0e*** 如果x==y,php会返回true,在有些时候 ...

  7. zabbix模板化监控

    zabbix模板化监控 1. 实验简述 在zabbix监控中,有很多组的概念,具体有以下几种: 1. 主机和主机组,相同类型/应用的主机,可以归属于同一个主机组 2. item和application ...

  8. dpdk之路-环境部署

    dpdk实验环境部署 1.实验环境说明 vmware workstatioin 12 centos 7.5.1804 dpdk-stable-18.11.1 2.实验步骤 (1)虚拟机安装 http: ...

  9. (十一) UVC调节亮度

    目录 UVC调节亮度 引入 硬件协议速览 代码框架 属性初始化 属性支持查询 具体属性值获取 具体属性值设置 代码实现 title: UVC调节亮度 date: 2019/4/23 20:30:00 ...

  10. Java四种引用--《深入理解Java虚拟机》学习笔记及个人理解(四)

    Java四种引用--<深入理解Java虚拟机>学习笔记及个人理解(四) 书上P65. StrongReference(强引用) 类似Object obj = new Object() 这类 ...