Gitlab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

详细介绍可以参照官网,https://about.gitlab.com/

今天主要是通过在docker上搭建一个Gitlab的环境,来讲解用到的docker命令。

效果图:

基础知识补充:了解docker中image和container的概念,image可以理解为VM template,container可以理解为从VM template生成的VM.

container是通过docker run命令从image生成出来的。

关于如何安装docker,请参考https://docs.docker.com/installation/

注:下面的所有命令都可以在这里找到详细的说明,如果不是root用户,需要在docker前加sudo。

1. docker search gitlab

  在docker hub/public registry上搜索带有gitlab关键词的images。stars值越高说明这个image越好。

注:我们也可以直接在index.docker.io上输入gitlab进行搜索,然后点击sameersbn/gitlab,进入网页后参考readme进行操作。

2. docker pull sameersbn/gitlab:latest

  从docker hub上下载image到本地, sameersbn/gitlab是image的名字,latest是tag,如果不写tag,默认是latest。

注:我们也可以不直接pull这个image,通过从github上下载最新的dockerfile文件,然后通过下面的命令进行build。

  docker build -t “lemonbar/gitlab” .  //注意此处的"."不是句号,是代表dockerfile所在的路径,.代表当前路径。-t是build出来的image的名字。

  docker push lemonbar/gitlab  //可以通过push命令,来把自己的image上传到public registry。

3. docker images

  查看本地已经存在哪些docker image,刚安装完docker后,默认是空的。

4. mkdir -p /opt/gitlab/data && mkdir -p /opt/gitlab/mysql

  继续操作前我们创建两个folder,用来存放一会在gitlab container运行中的一些文件。

  好处:防止container停止或者删除后,我们存储的一些文件不会和container一起被删除。

5. docker run --name=gitlab -P -d -v /opt/gitlab/data:/home/git/data -v /opt/gitlab/mysql:/var/lib/mysql sameersbn/gitlab

  从sameersbn/gitlab这个image生成名字为gitlab的container.

  --name是新生成的container的名字

  -d在后台运行这个container,也可以用-i,意思是交互式的运行container,用户可以看到输出,也可以输入

  -v把container里面的volumn映射到主机的存储,/opt/gitlab/data是主机的路径,/home/git/data是container里面的路径

  -P(大写)这个参数比较重要,是把所有container里面的端口都映射到主机上的随机端口,这样和主机在同一网络内的机器就可以访问container了。

  如果不想映射container里面所有端口,可以通过-p(小写)来进行单独的映射。

  这个命令是所有的命令中最重要的一个!(没有之一)

6. docker ps -a

  查看主机上有哪些containers,以及每个container的主要信息

7. docker inspect gitlab

  可以用来查看container的详细信息,gitlab是container的名字,也可以输入container的id(id不需要输全,只要前几位可以唯一标示这个container就可以了)

8. docker stop gitlab

  用来停止命名为gitlab的container

9. docker rm gitlab

  用来删除命名为gitlab的container

10. docker rmi sameersbn/gitlab

  用来删除命名为sameersbn/gitlab的image

初步使用docker,先掌握上面几个命令就可以了。有任何问题,可以参考https://docs.docker.com/reference/commandline/cli/

如果不想在自己机器上安装docker,只是想简单了解下docker的命令,可以访问下面的网站进行练习。

https://www.docker.com/tryit/

今天先写这些吧,下一篇会介绍如何搭建和使用自己的docker registry。

[Docker]学习笔记--搭建gitlab的更多相关文章

  1. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  2. Docker学习笔记总结

    Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/   一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...

  3. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  4. Docker 学习笔记一

    Docker 学习笔记一 1.Docker是什么?         Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源.让开发者打包他们的应用以及依赖包到一 ...

  5. Docker学习笔记 — 配置国内免费registry mirror

    Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror

  6. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  7. docker~学习笔记索引

    回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...

  8. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  9. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

  10. docker学习笔记二:常用命令

    docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...

随机推荐

  1. 用table表格来调整控件的格式

    由于想自己写一个web,所以也在学习html语言的一些东西,让我回忆起了大学时代曾对网页设计产生过兴趣,无奈那时候还没有自己的电脑,还常去网吧买个软盘下载一些图片,然后用fontpage做一些网页.后 ...

  2. centos 6.5 下使用nginx 反向代理 多个tornado

    centos 6.5 nginx 1.4.4 /etc/nginx/conf.d 下创建tornado.conf upstream tornado { server 127.0.0.1:8887; s ...

  3. NYOJ1097 Ugly Numbers 【丑数】

    Ugly Numbers 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 Ugly numbers are numbers whose only prime fact ...

  4. 读写锁pthread_rwlock_t的使用(转)

    读写锁是用来解决读者写者问题的,读操作可以共享,写操作是排他的,读可以有多个在读,写只有唯一个在写,同时写的时候不允许读. 具有强读者同步和强写者同步两种形式 强读者同步:当写者没有进行写操作,读者就 ...

  5. Tony zhao:到底怎么样才叫看书?

    http://blog.jobbole.com/25842/ 目录: 一.引入 二.经历了就能理解 三.读书要分级 四.只读经典 五.别吝惜你动笔的那点时间 一.引入 看到这个题目的时候你可能会感到有 ...

  6. 【MyBatis学习12】MyBatis中的一级缓存

    缓存的作用是减轻数据库的压力,提高数据库的性能的.mybatis中提供了一级缓存和二级缓存,先来看一下两个缓存的示意图:   从图中可以看出: 一级缓存是SqlSession级别的缓存.在操作数据库时 ...

  7. C#实现的根据日期得到今天是星期几

    算法如下:   基姆拉尔森计算公式: W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7  在公式中d表示日期中的日数,m表示月份数,y表示年数.注意:在公式中有 ...

  8. spring学习笔记(四)

    1.aop编程 a.前置通知 .... <!-- 配置被代理的对象 -->    <bean id="test1Service" class="com. ...

  9. Atitit.变量的定义 获取 储存 物理结构 基本类型简化 隐式转换 类型推导 与底层原理 attilaxDSL

    Atitit.变量的定义 获取 储存 物理结构 基本类型简化 隐式转换 类型推导 与底层原理 attilaxDSL 1.1. $ 美元字符, php 黑头1 1.2. 默认变量的范围和声明:1 1.3 ...

  10. 基于Verilog的以2为底取对数函数log2(x)

    参考资料:xilinx AXI4 Stream Peripherals 源码 //*********************************************************** ...