Docker 部署Registry私有倉庫+Harbor私有倉庫

有時候使用 Docker Hub 這樣的公共倉庫可能不方便,用戶能夠建立一 個本地倉庫供私人使用。
兩種不一樣的搭建Docker私有倉庫的方法,都必需要基於一個Docker服務器上,相比較而言,Harbor功能更強大些。
以前詳細寫過Registry私有倉庫的搭建方法,這裏的Registry只是有一點配置不同而已,若要搭建Registry私有倉庫,最好結合:Docker 鏡像的建立與構建私有庫,對比其不同的地方,選擇適合本身的。git

1、搭建Registry私有倉庫github

環境以下web

host IP service
docker01 192.168.171.150 docker私有倉庫
docker02-test 192.168.171.151 test

docker安裝可參考部署 Docker docker

一、開始配置第一臺Docker私有倉庫服務器:vim

[root@docker01 ~]# docker pull registry
[root@docker01 ~]# 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@docker01 ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
registry            latest              2d4f4b5309b1        6 weeks ago         26.2MB
centos              7                   b5b4d78bc90c        3 months ago        203MB
[root@docker01 ~]# docker tag centos:7 192.168.171.150:5000/centos:7                  # 更改鏡像名稱,以便符合私有倉庫名稱規範
#注:私有倉庫鏡像的命名規則:192.168.171.150:5000/XXX(宿主機的IP:5000端口/鏡像名稱)
[root@docker01 ~]# vim /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.171.150:5000              #更改docker的配置文件,以便指定私有倉庫
#定位到上面那行,在後面添加「--insecure-registry」並指定私有倉庫的IP及端口
[root@docker01 ~]# systemctl daemon-reload 
[root@docker01 ~]# systemctl restart docker         # 重啓使配置生效
[root@docker01 ~]# docker push 192.168.171.150:5000/centos:7          # 上傳鏡像到私有倉庫
[root@docker01 ~]# curl 192.168.171.150:5000/v2/_catalog          #查看私有倉庫中的鏡像
{"repositories":["centos"]}
[root@docker01 ~]# curl 192.168.171.150:5000/v2/centos/tags/list             #查看鏡像的詳細信息
{"name":"centos","tags":["7"]}

二、第二臺Docker服務器進行測試centos

[root@docker02-test ~]# vim /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.171.150:5000
#定位到上面那行,添加「--insecure-registry」指定私有倉庫的IP及參數
[root@docker02-test ~]# systemctl daemon-reload 
[root@docker02-test ~]# systemctl restart docker 
[root@docker02-test ~]# docker pull 192.168.171.152:5000/centos:7
[root@docker02-test ~]# docker images 
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
192.168.171.152:5000/centos   7                   b5b4d78bc90c        3 months ago        203MB

2、配置Harbor私有倉庫
Harbor私有倉庫和第一個Registry私有倉庫相比較而言,功能強大不少,而且支持web圖形化管理,推薦使用。瀏覽器

環境以下服務器

hostname IP service
docker01 192.168.171.151 harbor
docker03 192.168.171.152 test

一、打開github.com官網,在登陸頁面的右上角搜索compose---->找到docker/compose---->再找releases 網址
Docker 部署Registry私有倉庫+Harbor私有倉庫
複製本身所需版本下提供的兩條命令,在第一臺Docker服務器上依次進行操做:app

[root@docker01 ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
[root@docker01 ~]# curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@docker01 ~]# chmod +x /usr/local/bin/docker-compose        #賦予該命令執行權限
[root@docker01 ~]# docker-compose --version
docker-compose version 1.25.0-rc2, build 661ac20e

二、去github官網搜索harbor------>再點擊goharbor/harbor------->再點擊「releases」 網址
Docker 部署Registry私有倉庫+Harbor私有倉庫curl

[root@docker01 ~]# tar zxf harbor-offline-installer-v1.9.1.tgz 
[root@docker01 ~]# cd harbor/
[root@docker01 harbor]# vim harbor.yml 

hostname: 192.168.171.151                # 將hostname更改成本機IP
                         ...........
harbor_admin_password: Harbor12345              # 這行指定的是登陸harbor的登陸名及密碼
[root@docker01 harbor]# ./install.sh           # 執行安裝腳本
✔ ----Harbor has been installed and started successfully.----
[root@docker01 harbor]# ss -anput | grep 80           # 肯定80端口在監聽
[root@docker01 harbor]# vim /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.171.151:80
#定位到該行,添加「--insecure-registr」以便指定harbor的IP及其監聽端口
[root@docker01 harbor]# systemctl daemon-reload 
[root@docker01 harbor]# systemctl restart docker 
[root@docker01 harbor]# docker-compose stop        # 中止全部容器
[root@docker01 harbor]# docker-compose start         # 再啓動全部容器 
#其實harbor容器都配置的隨着docker啓動而啓動,主要我這裏是爲了以防萬一有個容器沒啓來

三、使用瀏覽器訪問harbor服務器的IP地址,使用配置文件中指定的用戶名及密碼登陸(默認用戶爲「admin」,密碼爲「Harbor12345」)
Docker 部署Registry私有倉庫+Harbor私有倉庫
四、點擊「新建項目」
Docker 部署Registry私有倉庫+Harbor私有倉庫
五、定義項目名稱
Docker 部署Registry私有倉庫+Harbor私有倉庫
六、回到Harbor服務器,開始向Harbor上傳鏡像

[root@docker01 ~]# docker login -u admin -p Harbor12345 192.168.171.151:80            # 命令行登陸到harbor
Login Succeeded
#執行上調命令後出現的警告只是,警告你建議更改初始密碼
[root@docker01 ~]# docker tag centos:7 192.168.171.151:80/test/centos:7
#注意要上傳至harbor倉庫的命名規範,其中test是剛纔在harbor建立的項目
[root@docker01 ~]# docker push 192.168.171.151:80/test/centos:7          #  上傳至harbor

Docker 部署Registry私有倉庫+Harbor私有倉庫
七、測試,第二臺Docker的測試端配置以下

[root@docker03 ~]# vim /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.171.151:80
#指定Harbor服務器的IP地址及80端口
[root@docker03 ~]# systemctl daemon-reload 
[root@docker03 ~]# systemctl restart docker
[root@docker03 ~]# docker login -u admin -p Harbor12345 192.168.171.151:80              # 登陸到私有倉庫
Login Succeeded
[root@docker03 ~]# docker pull 192.168.171.151:80/test/centos:7
相關文章
相關標籤/搜索