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


 

 

 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM