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 查到幫助網址:https://blog.csdn.net/nuengyong/article/details/103905566 解決 :下載這些包 https://pkgs.org/download/container-selinux https://pkgs.org/download/fuse-overlayfs https://pkgs.org/download/slirp4netns 安裝:#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