一. 安装Docker CE (参考 官网指南

1. 卸载老版本

sudo apt-get remove docker docker-engine docker.io

 2. Update the apt package index:

sudo apt-get update

 3. Install packages to allow apt to use a repository over HTTPS:

sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common

 4. Add Docker’s official GPG key:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

Verify that you now have the key with the fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, by searching for the last 8 characters of the fingerprint.

sudo apt-key fingerprint 0EBFCD88

pub 4096R/0EBFCD88 2017-02-22

  Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

uid Docker Release (CE deb) <docker@docker.com>

sub 4096R/F273FCD8 2017-02-22

5. Use the following command to set up the stable repository. You always need the stable repository, even if you want to install builds from the edge or test repositories as well.

   To add the edge or test repository, add the word edge or test (or both) after the word stable in the commands below.

a. x86_64 / amd64:

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"

b. armhf:

echo "deb [arch=armhf] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list

 6. Update the apt package index.

sudo apt-get update

 7. Install the latest version of Docker CE:

sudo apt-get install docker-ce

 8. Verify that Docker CE is installed correctly by running the hello-world image:

x86_64:

sudo docker run hello-world

armhf:

sudo docker run armhf/hello-world

9. 卸载Docker (以后需要卸载的话,再来看看)

   a. Uninstall the Docker CE package:

sudo apt-get purge docker-ce

b. Images, containers, volumes, or customized configuration files on your host are not automatically removed. To delete all images, containers, and volumes:

sudo rm -rf /var/lib/docker

必须手动写在其他的配置文件.

二.  安装gitlab

1. 执行下面的命令,从 docker 的镜像仓库中下载 gitlab 社区版的镜像

docker pull gitlab/gitlab-ce:latest

比较大,1G左右, 喝杯咖啡享受下人生

2. 容器运行gitlab

一定要root用户运行($ su -), 否则git clone会要密码, 切记,切记!

docker run --detach \
--hostname 192.168.1.6 \
--publish 8443:443 --publish 8080:80 --publish 2222:22 \
--name gitlab \
--restart always \
--volume /home/gitlab/config:/etc/gitlab \
--volume /home/gitlab/logs:/var/log/gitlab \
--volume /home/gitlab/data:/var/opt/gitlab \
docker.io/gitlab/gitlab-ce

等几分钟再登陆,:

http://192.168.1.6:8080 (对应自己的IP)

sudo docker run --detach \ --hostname git.xiaohuruwei.com \ --publish 8443:443 --publish 8080:80 --publish 2222:22 \ --name gitlab \ --restart always \ --volume /mnt/volumes/gitlab/config:/etc/gitlab \ --volume /mnt/volumes/gitlab/logs:/var/log/gitlab \ --volume /mnt/volumes/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest

作者:小狐濡尾
链接:https://www.jianshu.com/p/05e3bb375f64
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

sudo docker run --detach \ --hostname git.xiaohuruwei.com \ --publish 8443:443 --publish 8080:80 --publish 2222:22 \ --name gitlab \ --restart always \ --volume /mnt/volumes/gitlab/config:/etc/gitlab \ --volume /mnt/volumes/gitlab/logs:/var/log/gitlab \ --volume /mnt/volumes/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest

作者:小狐濡尾
链接:https://www.jianshu.com/p/05e3bb375f64
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

sudo docker run --detach \ --hostname git.xiaohuruwei.com \ --publish 8443:443 --publish 8080:80 --publish 2222:22 \ --name gitlab \ --restart always \ --volume /mnt/volumes/gitlab/config:/etc/gitlab \ --volume /mnt/volumes/gitlab/logs:/var/log/gitlab \ --volume /mnt/volumes/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest

作者:小狐濡尾
链接:https://www.jianshu.com/p/05e3bb375f64
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

参数说明:

  • --detach: 设置容器后台运行
  • --hostname: 设置容器的 hostname
  • --publish: 端口转发规则(8080:Http 访问端口映射到Docker80端口,8443:Https 访问端口映射到Docker443端口,2222:主机的 ssh 访问端口,22:Docker 容器中 ssh 访问端口)
  • --name:容器名称
  • --restart always:每次启动容器就重启GitLab
  • --volume: 共享目录挂载,即 docker 容器内外数据共享(/srv/gitlab/data: 应用程序数据,/srv/gitlab/logs:GitLab 的 log,/srv/gitlab/config:GitLab 的配置文件)
  • --e:配置 Gitlab 运行的环境变量

这里把主机的8443、8080、2222 端口直接转发到容器,同时利用 --volume /backup/gitlab/config:/etc/gitlab 、

                                      --volume /backup/gitlab/logs:/var/log/gitlab 、
                                                                                                       --volume /backup/gitlab/data:/var/opt/gitlab
这三个参数将 gitlab 的配置、数据和日志持久化到主机文件系统上来, 可以利用这些数据迁移gitlab。
 
 
3. 关键命令
sudo docker stop gitlab
sudo docker rm gitlab
 
4. 配置gitlab服务器的访问地址
按照上面的方式,让gitlab容器运行起来是没有问题的,但是当在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,
即容器的id。作为gitlab服务器,当然是需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机上的路径为:/data/gitlab/config/gitlab.rb)配置文件里面的参数。
# 配置http协议所使用的访问地址
external_url 'http://10.200.0.100' # 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '10.200.0.100'
gitlab_rails['gitlab_shell_ssh_port'] = 10022

为了方便,这里直接用宿主机ip来指定。ssh默认使用的端口号是22,但是为了避开与宿主机22端口的冲突,这里用了10022。通过上面的配置,gitlab上的项目生成的访问地址如下:

# HTTP
http://10.200.0.100/root/test-docker-gitlab.git
# SSH
ssh://git@10.200.0.100:10022/root/test-docker-gitlab.git

5. 配置邮件发送功能

个人觉得gitlab服务器发送邮件的功能是必不可少的,尤其是在用户注册时,通知用户设置密码也是通过发送邮件来完成的。这里也是修改gitlab.rb配置文件来完成。

# 这里以新浪的邮箱为例配置smtp服务器
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.sina.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "name4mail"
gitlab_rails['smtp_password'] = "passwd4mail"
gitlab_rails['smtp_domain'] = "sina.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true # 还有个需要注意的地方是指定发送邮件所用的邮箱,这个要和上面配置的邮箱一致
gitlab_rails['gitlab_email_from'] = 'name4mail@sina.com'

注意,每次修改gitlab.rb配置文件之后,或者在容器里执行gitlab-ctl reconfigure命令,或者重启容器以让新配置生效。

5. 其他

1) 如果想要支持https的话,还需要配置一下nginx;
2) 如果不想在登录界面出现用户自注册的输入界面的话,可以在Admin Area->Settings->Sign-in Restrictions里将Sign-up enabled选项去掉;
3) 国内的网络大家都懂的,gitlab使用的Gravatar头像时常显示不出来,如果不想用这功能,可以在Admin
Area->Settings->Account and Limit Settings里将Gravatar enabled选项去掉;

Debian9 使用 Docker 安装 gitlab完整过程的更多相关文章

  1. centos7下使用docker安装gitlab

    环境背景: Docker化已经成为一种热门,记录一下使用docker引擎安装gitlab的过程. 测试环境: 系统 软件 依赖 CentOS 7.4 GitLab(latest) docker-ce ...

  2. Docker安装Gitlab

    一.Ubuntu16.4上Docker安装Gitlab 1.安装docker 参见:https://docs.docker.com/engine/installation/linux/ubuntuli ...

  3. 解决 Windows Docker 安装 Gitlab Volume 权限问题

    本文首发于我的个人博客,解决 Windows Docker 安装 Gitlab Volume 权限问题 ,欢迎访问! 记录一下 Windows10 下 Docker 安装 Gitlab 的步骤. Ca ...

  4. 利用docker安装gitlab

    安装docker 安装 virtualbox 下载 dockertoolbox并安装 官网的服务器一直连不上, 幸亏还有这个 https://get.daocloud.io/toolbox/ 比 ht ...

  5. Docker安装MySql完整教程、实操

    docker:官网 docker:镜像官网:        镜像官网可以所有应用,选择安装环境:会给出安装命令,例如:docker pull redis 默认拉取最新的版本(指定版本:docker p ...

  6. docker安装gitlab并部署CICD

    摘要 本文主要实现了在docker下安装gitlab,将gitlab绑定在宿主机的180端口,将gitlab的clone的URL添加指定端口号:部署了CI/CD,并公布了测试项目. 安装docker[ ...

  7. docker 安装gitlab

    # docker 安装gitlab # 一.安装镜像(官网文档) export GITLAB_HOME=/srv/gitlab # 必须先设置它,它就是你存储代码仓库的位置.以后要移植的时候直接把这个 ...

  8. 使用docker安装gitlab

    我这里使用的系统是centos7 首先安装docker,docker-compose(非必须,但是使用它可以简化镜像启动参数),需要注意的是docker-compose安装依赖Python的pip,所 ...

  9. Docker安装GitLab与Runner(网关),常规设置,自动化用到k8s+token

    [转]图文详解k8s自动化持续集成之GitLab CI/CD Windows里面使用Debian命令行工具完成 和Docker网络相关的命令 查看某一个容器的网络 docker inspect 容器I ...

随机推荐

  1. linux driver ------ GPIO的驱动编写和调用

    判断哪些文件被编译进内核: 1.通过 make menuconfig 查看 2.比如查看gpio类型的文件,输入 ls drivers/gpio/*.o,有生成.o文件表示被编译进内核 在编写驱动程序 ...

  2. linux下查看主板内存槽与内存信息

    1.查看内存槽数.那个槽位插了内存,大小是多少 dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range 2. ...

  3. java用流的方式加载图片

    前端: <img ng-show="photo" class="vertical_b" id="photoImg" src=" ...

  4. Hadoop记录-Yarn命令

    概述 YARN命令是调用bin/yarn脚本文件,如果运行yarn脚本没有带任何参数,则会打印yarn所有命令的描述. 使用: yarn [--config confdir] COMMAND [--l ...

  5. 在Ajax返回多个值

    <html> <head> <title>AjaxTest</title> <script type="text/javascript& ...

  6. Ubuntu 云服务器上部署自己的 Rails 应用

    自学rails一段时间了,之前只用heroku部署了网站,想尝试把网站以一个更“正经”的方式呈现出来,就买了一个阿里云服务器.参考了网上部分rails部署教程,过程中也遇到了一些问题,所以在完成之后总 ...

  7. yum 安装时错误 Errno 14 Couldn't resolve host 解决办法

    后来网上查了一下说是DNS服务器错误.于是修改一下 /etc/resolv.conf 添加一个nameserver 8.8.8.8完成

  8. Scrapy基础01

    一.Scarpy简介 Scrapy基于事件驱动网络框架 Twisted 编写.(Event-driven networking) 因此,Scrapy基于并发性考虑由非阻塞(即异步)的实现. 参考:武S ...

  9. 计算机网络--HTTP协议

    TCP/IP协议 互联网构建的初衷是信息的共享.在信息的传递过程中,计算机不可避免的需要产生交流.就像我们与别人交谈需要懂得对方的语言才能明白对方表达的意思一样,计算机的交流也需要一个约束了,称之为协 ...

  10. VS下个人认为比较实用的插件

    懒得打字了,直接贴图