在成功完成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. python高级编程笔记一 正则表达式

    事例

  2. bugku 逆向 take the maze

    看到如果判断正确之后 会生成一个png文件 直接用idc脚本生成: auto v,begin,end,dexbyte; v = fopen("flag.png", "wb ...

  3. 内置函数(sorted、map、enumerate、filter、reduce)

    1.sorted() 语法: sorted(iterable, cmp=None, key=None, reverse=False) 把iterable中的items进行排序之后,返回一个新的列表,原 ...

  4. WIKI 部署后记录

    使用说明 环境 MYSQL 安装方式: YUM 版本:5.7 账号: root / 123456 主机白名单: localhost 账号:admin / 123456 主机白名单: % 账号:conf ...

  5. 【洛谷P1659】啦啦队排练

    题目大意:给定一个长度为 N 的字符串,求前 K 个长度为奇数的回文子串的长度的乘积是多少. 题解:利用回文自动机,将所有长度的回文串和个数求出来,按照长度排序进行模拟即可. 代码如下 // luog ...

  6. ECS集群管理docker

    1. create ECR Repositories on AWS a. local server need install git/docker/awscli b. config aws: use ...

  7. Ubuntu16.04安装及配置nginx

    Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...

  8. ThinkPHP—URL的访问以及各种方法的操作

    1.URL访问 ThinkPHP采用单一入口模式访问应用,对应用的所有请求都定向到应用的入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作,下面是一个标准的URL访问格式: 第一种访问方式 ...

  9. 程序到CPU的路径

    汇编 源码->编译->CPU C/C++ 源码->编译->机器码->系统(执行)->CPU Java/.NET 源码->编译->J字节码->虚拟机 ...

  10. 微软必应地图加载错误:Uncaught TypeError: Microsoft.Maps.Location is not a constructor

    微软必应地图在chrome浏览器加载错误:Uncaught TypeError: Microsoft.Maps.Location is not a constructor, 原因是没有等待地图API加 ...