博文大綱:git
- 1、搭建Registry私有倉庫
- 2、配置Harbor私有倉庫
這篇博文寫的是兩種不一樣的搭建Docker私有倉庫的方法,都必需要基於一個Docker服務器上,相比較而言,Harbor功能更強大些。github
以前詳細寫過Registry私有倉庫的搭建方法,這裏的Registry只是有一點配置不同而已,若要搭建Registry私有倉庫,最好結合:Docker鏡像的建立+構建私有倉庫及其使用方法這篇博文來,對比其不同的地方,選擇適合本身的方案。web
環境準備:docker
- 兩臺centos 7.3,一臺爲Docker私有倉庫服務器,另外一臺爲測試端,兩臺須可ping通;
- 參考博文:Docker的安裝詳細配置,對兩臺服務器進行安裝docker環境。
[root@docker ~]# docker pull registry #下載registry鏡像 [root@docker ~]# docker run -tid --name registry --restart=always -p 5000:5000 -v /data/registry:/var/lib/registry registry #運行該鏡像,各個選項含義以下: # -tid:之後臺持久運行,並分配一個可交互的爲終端 # --name registry :給容器定義一個名字 # --restart=always:該容器能夠隨着docker服務的啓動而啓動 # -p:將容器的端口映射到宿主機,冒號前面是宿主機的端口,冒號後面是容器的端口,registry的默認端口是5000 # -v:將宿主機的目錄掛載到容器中,冒號前面是宿主機的目錄,冒號後面是容器中的目錄 [root@docker ~]# docker images #查看當前的鏡像 REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 0f3e07c0138f 2 weeks ago 220MB registry latest f32a97de94e1 7 months ago 25.8MB [root@docker ~]# docker tag centos:latest 192.168.20.7:5000/centos:latest #更改鏡像名稱,以便符合私有倉庫名稱規範 #注:私有倉庫鏡像的命名規則:192.168.20.7:5000/XXX(宿主機的IP:5000端口/鏡像名稱) [root@docker ~]# vim /usr/lib/systemd/system/docker.service #更改docker的配置文件,以便指定私有倉庫 ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20.7:5000 #定位到上面那行,在後面添加「--insecure-registry」並指定私有倉庫的IP及端口,而後保存退出便可 [root@docker ~]# systemctl daemon-reload #重載配置文件 [root@docker ~]# systemctl restart docker #重啓docker服務 [root@docker ~]# docker push 192.168.20.7:5000/centos:latest #上傳鏡像至私有倉庫 [root@docker ~]# curl 192.168.20.7:5000/v2/_catalog #查看私有倉庫中的鏡像 {"repositories":["centos"]} [root@docker ~]# curl 192.168.20.7:5000/v2/centos/tags/list #查看鏡像的詳細信息 {"name":"centos","tags":["latest"]}
[root@docker02 ~]# vim /usr/lib/systemd/system/docker.service #編輯主配置文件 ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20.7:5000 #定位到上面那行,添加「--insecure-registry」指定私有倉庫的IP及參數 #添加完成後,保存退出便可 [root@docker02 ~]# systemctl daemon-reload #重載配置文件 [root@docker02 ~]# systemctl restart docker #重啓docker服務 [root@docker02 ~]# docker pull 192.168.20.7:5000/centos:latest #下載私有倉庫的中的鏡像 [root@docker02 ~]# docker images #確認下載的鏡像
Harbor私有倉庫和第一個Registry私有倉庫相比較而言,功能強大不少,而且支持web圖形化管理,推薦使用。vim
環境和搭建Registry的同樣,以下:centos
- 兩臺centos 7.3,一臺爲Docker私有倉庫服務器,另外一臺爲測試端,兩臺須可ping通;
- 參考博文:Docker的安裝詳細配置,對兩臺服務器進行安裝docker環境。
複製本身所需版本下提供的兩條命令,在第一臺Docker服務器上依次進行操做:瀏覽器
[root@docker ~]# yum -y install yum-utils device-mapper-persistent-data lvm2 #安裝依賴包 [root@docker ~]# curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose #複製官網上的上述命令 [root@docker ~]# chmod +x /usr/local/bin/docker-compose #賦予該命令執行權限 [root@docker ~]# docker-compose -version #查看其版本信息 docker-compose version 1.24.1, build 4667896b
[root@docker ~]# tar zxf harbor-offline-installer-v1.7.4.tgz -C /usr/src #將下載的安裝包解壓到指定目錄 [root@docker src]# cd /usr/src/harbor/ #切換至解壓後的目錄中 [root@docker harbor]# vim harbor.cfg #編輯這個配置文件 ..............#省略部份內容 hostname = 192.168.20.7 #將hostname更改成本機IP harbor_admin_password = Harbor12345 #這行指定的是登陸harbor的登陸名及密碼 #默認用戶爲「admin」,密碼爲「Harbor12345」 ..............#省略部份內容 [root@docker harbor]# ./install.sh #執行自帶的安裝腳本 [root@docker harbor]# netstat -antp | grep 80 #肯定80端口正在監聽 [root@docker harbor]# vim /usr/lib/systemd/system/docker.service #編輯docker主配置文件 ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20.7:80 #定位到該行,添加「--insecure-registr」以便指定harbor的IP及其監聽端口 [root@docker harbor]# systemctl daemon-reload #從新加載配置文件 [root@docker harbor]# systemctl restart docker #重啓docker服務 [root@docker harbor]# docker-compose stop #中止全部容器 [root@docker harbor]# docker-compose start #啓動全部容器
**服務器
[root@docker harbor]# docker login -u admin -p Harbor12345 192.168.20.7:80 #命令行登陸到harbor [root@docker harbor]# docker tag centos:latest 192.168.20.7:80/test/centos:latest #更改鏡像名稱 #注意要上傳至harbor倉庫的命名規範,其中test是剛纔在harbor建立的項目 [root@docker harbor]# docker push 192.168.20.7:80/test/centos:lates #上傳至harbor
[root@docker02 ~]# vim /usr/lib/systemd/system/docker.service #編輯其配置文件 ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20 .7:80 #指定Harbor服務器的IP地址及80端口 [root@docker02 ~]# systemctl daemon-reload [root@docker02 ~]# systemctl restart docker #重啓docker [root@docker02 ~]# docker login -u admin -p Harbor12345 192.168.20.7:80 #登陸到私有倉庫 [root@docker02 ~]# docker pull 192.168.20.7:80/test/centos:latest #至此便可下載第一臺docker服務器上傳的鏡像
———————— 本文至此結束,感謝閱讀 ————————app