docker+gitlab:docker安装、docker安装gitlab、gitlab容器镜像仓库搭建及docker上传镜像

 


 前言:

1.实验主机ip地址:192.168.24.137(内网地址)、192.168.148.140(虚拟机NAT模式地址)

 


 

一、docker安装

docker安装

复制代码
# 1、卸载旧的版本
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 2、需要的安装包
yum install -y yum-utils     

# 3、设置镜像的仓库
yum-config-manager \
    --add-repo \  
    https://download.docker.com/linux/centos/docker-ce.repo    #默认是国外的,下载很慢,不要 用这个。

yum-config-manager \
    --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  推荐使用阿里云的         

#更新yum软件包索引 
yum makecache fast
          
# 4、安装docker相关内容(docker-ce 社区版;docker-ee 企业版;推荐使用ce。)
yum install docker-ce docker-ce-cli containerd.io -y (安装需解决依赖问题)
复制代码
安装期间报错(缺少依赖,需要下载):
复制代码
#yum install docker-ce docker-ce-cli containerd.io
报错:
Error: Package: containerd.io-1.4.3-3.1.el7.x86_64 (docker-ce-stable)
Requires: container-selinux >= 2:2.74
Error: Package: docker-ce-rootless-extras-20.10.2-3.el7.x86_64 (docker-ce-stable)
Requires: fuse-overlayfs >= 0.7
Error: Package: docker-ce-rootless-extras-20.10.2-3.el7.x86_64 (docker-ce-stable)
Requires: slirp4netns >= 0.4
Error: Package: 3:docker-ce-20.10.2-3.el7.x86_64 (docker-ce-stable)
Requires: container-selinux >= 2:2.74
复制代码

原因还是国内yum源软件包不全,下载所需依赖包。

要手动去下载:https://pkgs.org/download/container-selinux
解决 :下载这些包
安装:
#rz 
#yum install policycoreutils-python  -y
# rpm -ivh container-selinux-2.107-3.el7.noarch.rpm
#yum install libfuse3.so.3*   (实际安装的是 fuse3-libs)
# rpm -ivh fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm
# yum install slirp4netns-0.4.3-4.el7_8.x86_64.rpm
其实按最后的yum下载,直接可以解决上面两个rpm包的依赖问题

然后启动docker

# 5、启动docker
systemctl start docker
# 6、验证安装成功
docker version
注意:安装启动docker后,iptables会生成默认的docker防火墙,需开启,不可清空。(若清空,则会造成其他主机无法访问docker上的服务。)

关于docker

# 1、卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 2、删除docker资源
rm -rf /var/lib/docker

#/var/lib/docker docker的默认工作路径

 

阿里云镜像加速

1、登录阿里云 找到"容器镜像服务" (需要有阿里云账号,不用购买服务器)
2、进入"容器镜像服务"后,左侧最下面找到"镜像加速器"

 配置使用

复制代码
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
#sudo mkdir -p /etc/docker
#sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://uprn7w1d.mirror.aliyuncs.com"]
}
EOF
#sudo systemctl daemon-reload
#sudo systemctl restart docker
复制代码

 


 

二、docker安装gitlab

 
前提是docker已安装,即完成第一步。

docker安装gitlab

复制代码
1.拉取最新版本的 gitlab 社区版本镜像:
#docker pull gitlab/gitlab-ce:latest

2.创建gilab的容器卷使用目录
#mkdir -p /Users/gk/code/docker/gitlab-ce

3.使用 docker run 运行 

#docker run --detach \
--hostname 127.0.0.1 \
--publish 443:443 --publish 80:80 --publish 222:22 --publish 4567:4567 \
--name gitlab \
--restart always \
--volume /Users/gk/code/docker/gitlab-ce/config:/etc/gitlab \
--volume /Users/gk/code/docker/gitlab-ce/logs:/var/log/gitlab \
--volume /Users/gk/code/docker/gitlab-ce/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest

 

#docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
87060e766081 gitlab/gitlab-ce:latest "/assets/wrapper" 6 minutes ago Up 6 minutes (healthy) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:4567->4567/tcp, :::4567->4567/tcp, 0.0.0.0:222->22/tcp, :::222->22/tcp gitlab

docker下的gitlab启动成功

复制代码

关于docker run的允许参数讲解如下

复制代码
docker run 命令使用了多个参数,这些参数的作用如下:

  --detach:后台运行容器
  --publish:端口映射,容器端口如何映射到宿主机(本文指我们的 Mac 电脑)端口
  --name:指定容器的名称,这里我们指定容器名称为 gitlab
  --restart always:设置当宿主机重启后,容器也会重启
  --volume:这里使用 bind mount 的方式,设置 gitlab 容器的数据保存在目录 /Users/gk/code/docker/gitlab-ce/ 下

其中。80,22都知道。4567端口是为后面的gitlab容器仓库提前准备的。443端口是为ssl准备的,但本文为涉及证书的安装,即本实验中未用到该443端口。
复制代码

容器和本地目录对应如下

本地目录   容器目录 用途
/Users/gk/code/docker/gitlab-ce/config /etc/gitlab 保存 gitlab 配置
/Users/gk/code/docker/gitlab-ce/logs /var/log/gitlab 保存 gitlab 输出日志
/Users/gk/code/docker/gitlab-ce/data /var/opt/gitlab 保存 gitlab 应用数据

执行上面的 docker run 命令后,我们再转回到本地的目录 /Users/gk/code/docker/gitlab-ce/config,打开文件 gitlab.rb ,并修改 external_url 为 http://192.168.24.137 ,以便于可以使用地址 http://192.168.24.137 访问 gitlab。

#vim /Users/gk/code/docker/gitlab-ce/config/gitlab.rb
  external_url http://192.168.24.137

执行命令重启 gitlab
#docker restart gitlab
启动 gitlab 容器过程中,可以使用命令来查看启动过程的日志输出。
#docker logs -f gitlab

打开浏览器,输入地址 http://192.168.24.137,执行命令后马上访问 gitlab 会报 502 错误,等待一段时间又好了,打开浏览器,输入地址,同时可以正常访问 gitlab。

 

修改docker中gitlab的root账号的密码

GitLab安装好后,没有出现设置密码界面,如上图所示。

默认用户名为root已经被创建,默认密码需要自己设置。

复制代码
1.查看容器名称
#docker ps

2.进入GitLab容器
#docker exec -it <容器名称>  /bin/bash
即#docker exec -it 87060e766081 /bin/bash
3.启动Ruby on Rails控制台 gitlab-rails console -e production 4.搜索电子邮件或用户名 irb(main):001:0> user = User.where(id: 1).first
给出结果
=> #<User id:1 @root>
5.更改密码
user.password = '新密码'

6.确认更改密码
user.password_confirmation = '新密码'

7.保存
user.save!
返回结果true,表示保存成功。

8.退出
exit
exit
复制代码

然后使用修改后的密码,使用root账号登陆即可。此处不需要重启gitlab。登录后如图所示

 

 


 

 

三、gitlab容器镜像仓库搭建及docker上传镜像

 

gitlab容器镜像仓库搭建

gitlab 可以用来管理 git 提交的源代码,此外,gitlab 还集成了 docker registry 的功能,可以用来作为一个 docker 镜像私有仓库使用。
Gitlab 默认不打开 docker registry 的功能,需要修改配置打开。
修改配置 /etc/gitlab/gitlab.rb 文件,将 registry_external_url 的值修改为 http://192.168.24.137:4567

#vim /Users/gk/code/docker/gitlab-ce/config/gitlab.rb
 registry_external_url 'http://192.168.24.137:4567'

此处的端口4567与第二步中的docker run时指定的端口对应。

registry_external_url 这个地址是我们使用 docker 命令进行 pull 或者 push 镜像的仓库地址。重启 gitlab 后,可以在 gitlab 左侧面板看到 Container Registry() 的菜单。

重启gitlab
#docker restart gitlab

新建项目,项目创建完成后,进入项目。

 

 然后在项目中查看

 

 该页面往下拉,会提示操作

 

 

docker上传镜像到gitlab

在客户端安装docker后,在客户端使用docker login访问,如图

如图所示,会报错,解决如下:

#vim /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.24.137:4567"]
}
  #注意,若有多项配置,]后要加","。
#systemctl daemon-reload
#systemctl restart docker

然后重新登录

#docker login 192.168.24.137:4567

 

 登录成功。

构建镜像:

复制代码
#mkdir /root/Dockerfile/

编写Dockerfile文件(必须要有Dockerfile文件,且有内容,随便写写)
#vim /root/Dockerfile/Dockerfile
    FROM centos
    
    ENV MYPATH /usr/local
    WORKDIR  $MYPATH
    
    RUN yum install -y vim
    RUN yum install -y net-tools
    
    EXPOSE 80
    
    CMD echo $MYPATH
    CMD echo "----end----"
    CMD /bin/bash

构建镜像,默认会到目标目录下寻找Dockerfile文件
Dockerfile]#docker build -t 192.168.24.137:4567/root/muyu  /root/Dockerfile/

构建成功后,就可以push了
#docker push 192.168.24.137:4567/root/muyu
复制代码

推送结果如图,成功

查看gitlab,如图,推送成功

 

 


参考网址:

使用 Docker 安装 Gitlab:https://leehao.blog.csdn.net/article/details/104264224
修改docker中gitlab的root账号的密码:https://blog.csdn.net/daqiang012/article/details/118765409
使用 Gitlab 搭建 Docker 私有仓库:https://blog.csdn.net/lihao21/article/details/104274289


 

 

 
 
 

posted @   浮~生  阅读(3188)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示