Docker系列08—搭建使用私有docker registry

来源:https://www.cnblogs.com/along21/archive/2019/01/10/10249001.html
-Advertisement-
Play Games

本文收錄在容器技術學習系列文章總目錄 1、瞭解Docker Registry 1.1 介紹 registry 用於保存docker 鏡像,包括鏡像的層次結構和元數據。 啟動容器時,docker daemon會試圖從本地獲取相關的鏡像;本地鏡像不存在時,其將從registry中下載該鏡像並保存到本地; ...


本文收錄在容器技術學習系列文章總目錄

1、瞭解Docker Registry

1.1 介紹

  • registry 用於保存docker 鏡像,包括鏡像的層次結構和元數據。
  • 啟動容器時,docker daemon會試圖從本地獲取相關的鏡像;本地鏡像不存在時,其將從registry中下載該鏡像並保存到本地;
  • 拉取鏡像時,如果不知道registry倉庫地址,預設從Docker Hub搜索拉取鏡像

 

1.2 分類

  • Sponsor Registry:第三方的registry,供客戶和docker社區使用;
  • mirror Registry:第三方的registry,只讓客戶使用;如docker cn和阿裡雲的鏡像加速器;
  • vendor Registry:服務商的registry,由發佈docker鏡像的供應商提供的registry;如紅帽提供的專有的,收費提供;
  • private Registry:通過設有防火牆和額外的安全層的私有實體提供的registry;自建的registry,在本地搭建registry,節省帶寬

 

1.3 registry組成(repositoryindex

(1)Repository

  • 由特定的docker鏡像的所有迭代版本組成的鏡像倉庫;
  • 一個registry中可以存在多個repository
    •  repository可分為頂層倉庫用戶倉庫
    •  用戶倉庫名稱格式為用戶名/倉庫名
  • 每個倉庫可以包含多個Tag(標簽),每個標簽對應一個鏡像

 

(2)Index

  • 維護用戶賬戶、鏡像的校驗以及公共命名空間的信息
  • 相當於為registry提供了一個完成用戶認證等功能的檢索介面

 

1.4 拉取上傳倉庫鏡像

1)拉取鏡像

docker pull <registry>[:<port>]/[<namespace>/]<name>:<tag>
  •  registry:倉庫伺服器地址:不指定預設是docker hub
  •  port:埠;預設是443,因為是https協議
  •  namespace:名稱空間,指是哪個用戶的倉庫,如果是頂層倉庫,可省
  •  name:倉庫名
  •  tag:標簽名;預設是latest版本

 

2)上傳鏡像

docker push [OPTIONS] NAME[:TAG]

 

1.5 知名docker倉庫

    例:docker pull quay.io/coreos/flannel:v0.10.0-amd64

 

  博主前面的文章已經詳細介紹過,從第三方的registry 上傳拉取鏡像了;這篇就是詳細講解如果搭建私有registry ,併在私有registry上傳拉取鏡像了。

2、搭建私有倉庫 distribution

2.1 distribution 介紹

docker提供的開源Registry,但是很簡單,只能作為存儲鏡像的倉庫,沒有額外的功能;如管理頁面等

 

2.2 安裝啟動 distribution

兩種方案安裝,我採用的是方案2

2.2.1 方案1:使用yum安裝(直接從extras 源中下載安裝)

[root@docker2 ~]# yum info docker-distribution
已載入插件:fastestmirror
Loading mirror speeds from cached hostfile
可安裝的軟體包
名稱    :docker-distribution
架構    :x86_64
版本    :2.6.2
發佈    :2.git48294d9.el7
大小    :3.5 M
源    :extras/7/x86_64
簡介    : Docker toolset to pack, ship, store, and deliver content
網址    :https://github.com/docker/distribution
協議    : ASL 2.0
描述    : Docker toolset to pack, ship, store, and deliver content
[root@docker2 ~]# yum -y install docker-distribution

 

2.2.2 方案2:拉取鏡像,作為容器安裝

1)拉取鏡像

[root@docker2 ~]# docker pull registry:2.6.2
2.6.2: Pulling from library/registry
d6a5679aa3cf: Pull complete 
ad0eac849f8f: Pull complete 
2261ba058a15: Pull complete 
f296fda86f10: Pull complete 
bcd4a541795b: Pull complete 
Digest: sha256:5a156ff125e5a12ac7fdec2b90b7e2ae5120fa249cf62248337b6d04abc574c8
Status: Downloaded newer image for registry:2.6.2

 

2)啟動registry 容器

[root@docker2 ~]# docker run --name registry -p 5000:5000 -v /data/registry:/var/lib/registry -d registry:2.6.2 
a43f802e737eba89879a4dc02562b38e0042db981f9bdb91782b453f0bac4119
[root@docker2 ~]# docker port registry 
5000/tcp -> 0.0.0.0:5000
[root@docker2 ~]# ss -nutlp |grep 5000
tcp    LISTEN     0      128      :::5000                 :::*                   users:(("docker-proxy",pid=4901,fd=4))
[root@docker2 ~]# docker inspect -f {{."Mounts"}} registry
[{bind  /data/registry /var/lib/registry   true rprivate}]

註:

  •  -p 5000:5000:將容器中的5000埠,暴露在宿主機的5000
  •  -v /data/registry:/var/lib/registry:指定宿主機存儲的位置為 /data/registry
  •  -d:後臺運行容器

 

2.3 從私有倉庫上傳下載鏡像

2.3.1 將本地的鏡像上傳到私有倉庫

1)先將本地倉庫打上合適的標簽

[root@docker1 ~]# docker tag busybox:latest 192.168.10.102:5000/busybox:v0.1
[root@docker1 ~]# docker image ls
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
192.168.10.102:5000/busybox   v0.1                758ec7f3a1ee        13 days ago         1.15 MB
busybox                       latest              758ec7f3a1ee        13 days ago         1.15 MB

  

2)嘗試刪除鏡像

[root@docker1 ~]# docker push 192.168.10.102:5000/busybox:v0.1 
The push refers to a repository [192.168.10.102:5000/busybox]
Get https://192.168.10.102:5000/v1/_ping: http: server gave HTTP response to HTTPS client

上傳鏡像失敗;原因:docker 上傳下載預設只支持https協議,搭建的私有倉庫是http協議。

 

3)修改重啟docker服務

[root@docker1 ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "insecure-registries": ["192.168.10.102:5000"]
}
[root@docker1 ~]# systemctl restart docker

註:就是將私有倉庫認證為安全倉庫:"insecure-registries": [""]

 

4)再次上傳鏡像,成功

[root@docker1 ~]# docker push 192.168.10.102:5000/busybox:v0.1 
The push refers to a repository [192.168.10.102:5000/busybox]
23bc2b70b201: Pushed 
v0.1: digest: sha256:cbcde3595079b1f7a6b046e96e7547fe786d5c2c8eba678bc260161bc01b8dbe size: 527

  

5)在私有倉庫的伺服器上驗證

[root@docker2 ~]# ls /data/registry/docker/registry/v2/
blobs  repositories

  

6)從私有倉庫拉取鏡像,先刪除再拉取

[root@docker1 ~]# docker rmi 192.168.10.102:5000/busybox:v0.1 
Untagged: 192.168.10.102:5000/busybox:v0.1
Untagged: 192.168.10.102:5000/busybox@sha256:cbcde3595079b1f7a6b046e96e7547fe786d5c2c8eba678bc260161bc01b8dbe
[root@docker1 ~]# docker image ls
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
busybox                  latest              758ec7f3a1ee        2 weeks ago         1.15 MB
[root@docker1 ~]# docker pull 192.168.10.102:5000/busybox:v0.1
v0.1: Pulling from busybox
Digest: sha256:cbcde3595079b1f7a6b046e96e7547fe786d5c2c8eba678bc260161bc01b8dbe
Status: Downloaded newer image for 192.168.10.102:5000/busybox:v0.1
[root@docker1 ~]# docker image ls
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
192.168.10.102:5000/busybox   v0.1                758ec7f3a1ee        2 weeks ago         1.15 MB

  

3、安裝搭建私有倉庫 Harbor

3.1 認識 Harbor

3.1.1 Harbor 介紹

  •  Harbor gitlab項目地址:https://github.com/goharbor/harbor
  •  Harbor是一個開源的可信雲本機註冊表項目,用於存儲,簽名和掃描內容。Harbor通過添加用戶通常需要的功能(如安全性,身份和管理)來擴展開源Docker Distribution。使註冊表更接近構建和運行環境可以提高圖像傳輸效率。Harbor支持在註冊表之間複製映像,還提供高級安全功能,如用戶管理,訪問控制和活動審計。
  •  HarbourCloud Native Computing FoundationCNCF)托管。如果您是一個希望幫助塑造雲原生技術發展的組織,請考慮加入CNCF。有關誰參與以及Harbour如何扮演角色的詳細信息,請閱讀CNCF 公告。

 

3.1.2 Harbor 特征

  •  雲本機註冊表Harbour 支持容器映像和Helm圖表,可用作雲本機環境(如容器運行時和業務流程平臺)的註冊表。
  •  基於角色的訪問控制:用戶和存儲庫通過項目進行組織,用戶可以對項目下的圖像擁有不同的許可權。
  •  基於策略的映像複製:可以基於具有多個過濾器(存儲庫,標記和標簽)的策略在多個註冊表實例之間複製(同步)映像。如果遇到任何錯誤,Harbor將自動重試進行複製。非常適合負載平衡,高可用性,多數據中心,混合和多雲場景。
  •  漏洞掃描Harbor定期掃描圖像並警告用戶漏洞。
  •  LDAP / AD支持Harbor與現有企業LDAP / AD集成以進行用戶身份驗證和管理,並支持將LDAP組導入Harbor併為其分配適當的項目角色。
  •  圖像刪除和垃圾收集:可以刪除圖像,並可以回收它們的空間。
  •  公證:可以確保圖像的真實性。
  •  圖形用戶門戶:用戶可以輕鬆瀏覽,搜索存儲庫和管理項目。
  •  審計:跟蹤存儲庫的所有操作。
  •  RESTful API:適用於大多數管理操作的RESTful API,易於與外部系統集成。
  •  易於部署:提供線上和離線安裝程式。

 

3.1.3 harbor 配置參數

1)參數介紹

配置參數位於文件harbor.cfg中。

harbor.cfg中有兩類參數,必需參數和可選參數。

  •  required參數:需要在配置文件中設置這些參數。如果用戶更新它們harbor.cfg並運行install.sh腳本以重新安裝Harbor,它們將生效。
  •  可選參數:這些參數對於更新是可選的,即用戶可以將它們保留為預設值,併在啟動Harbour後在Web Portal上更新它們。如果它們已經啟用harbor.cfg,它們只會在首次啟動Harbour時生效。harbor.cfg將忽略對這些參數的後續更新。

註意:如果您選擇通過Portal設置這些參數,請務必在Harbour啟動後立即執行此操作。特別是,您必須在Harbour中註冊或創建任何新用戶之前設置所需的auth_mode。當系統中有用戶時(除預設管理員用戶外), 無法更改auth_mode

請註意,至少需要更改hostname屬性。

 

2)必需參數

  •  hostname目標主機的主機名,用於訪問Portal和註冊表服務。它應該是目標電腦的IP地址或完全限定的功能變數名稱(FQDN),例如,192.168.1.10reg.yourdomain.com。不要使用localhost127.0.0.1作為主機名 - 外部客戶端需要訪問註冊表服務!
  •  ui_url_protocol :( httphttps預設為http)用於訪問Portal和令牌/通知服務的協議。如果啟用了公證,則此參數必須為https。預設情況下,這是http。要設置https協議,請參閱使用HTTPS訪問配置Harbor
  •  db_password用於db_authPostgreSQL資料庫的root密碼。更改此密碼以用於任何生產用途!
  •  max_job_workers :(預設值為10)作業服務中的最大複製工作者數。對於每個映像複製作業,工作程式將存儲庫的所有標記同步到遠程目標。增加此數量可以在系統中實現更多併發複製作業。但是,由於每個工作者都消耗一定量的網路/ CPU / IO資源,請根據主機的硬體資源仔細選擇該屬性的值。
  •  customize_crton or off. Default is on),如果此屬性on,在準備腳本創建註冊表的令牌生成/驗證私鑰和根證書。當外部源提供密鑰和根證書時,將此屬性設置為off。有關詳細信息,請參閱自定義密鑰和港口令牌服務證書。
  •  ssl_certSSL證書的路徑,僅在協議設置為https時應用。
  •  ssl_cert_keySSL密鑰的路徑,僅在協議設置為https時應用。
  •  secretkey_path:用於加密或解密複製策略中遠程註冊表密碼的密鑰路徑。
  •  log_rotate_count:日誌文件在被刪除之前會被輪換log_rotate_count次。如果count0,則刪除舊版本而不是旋轉。
  •  log_rotate_size:僅當日誌文件大於log_rotate_size位元組時才會輪換日誌文件。如果大小後跟k,則假定大小以千位元組為單位。如果使用M,則大小以兆位元組為單位,如果使用G,則大小為千兆位元組。尺寸100,尺寸100k,尺寸100M和尺寸100G都是有效的。
  •  http_proxy:為Clair配置http代理,例如http://my.proxy.com:3128
  •  https_proxy:為Clair配置https代理,例如http://my.proxy.com:3128
  •  no_proxy:為Clair配置無代理,例如127.0.0.1,localhost,core,registry

 

3)可選參數

  • 電子郵件設置Harbor需要這些參數才能向用戶發送密碼重置電子郵件,並且僅在需要該功能時才需要。另外,請註意,在預設情況下SSL連接時沒有啟用-如果你的SMTP伺服器需要SSL,但不支持STARTTLS,那麼你應該通過設置啟用SSL email_ssl = TRUE。如果電子郵件伺服器使用自簽名證書或不受信任證書,則設置email_insecure = true
    •  email_server = smtp.mydomain.com
    •  email_server_port = 25
    •  email_identity =
    •  email_username = [email protected]
    •  email_password = abc
    •  email_from = admin [email protected]
    •  email_ssl = false
    •  email_insecure = false
  •  harbor_admin_password:管理員的初始密碼。此密碼僅在Harbor首次啟動時生效。之後,將忽略此設置,並且應在Portal中設置管理員密碼。請註意,預設用戶名/密碼為admin / Harbor12345
  •  auth_mode:使用的身份驗證類型。預設情況下,它是db_auth,即憑據存儲在資料庫中。對於LDAP身份驗證,請將其設置為ldap_auth。重要信息:從現有Harbor實例升級時,必須確保在啟動新版本的Harbor之前auth_mode相同harbor.cfg。否則,用戶可能無法在升級後登錄。
  •  ldap_urlLDAP端點URL(例如ldaps://ldap.mydomain.com)。 僅在auth_mode設置為ldap_auth時使用。
  •  ldap_searchdn:具有搜索LDAP / AD伺服器許可權的用戶的DN(例如uid=admin,ou=people,dc=mydomain,dc=com)。
  •  ldap_search_pwdldap_searchdn指定的用戶密碼。
  •  ldap_basedn:查找用戶的基本DN,例如ou=people,dc=mydomain,dc=com 僅在auth_mode設置為ldap_auth時使用。
  •  ldap_filter:用於查找用戶的搜索過濾器,例如(objectClass=person)
  •  ldap_uid:用於在LDAP搜索期間匹配用戶的屬性,它可以是uidcnemail或其他屬性。
  •  ldap_scope:搜索用戶的範圍,0-LDAP_SCOPE_BASE1-LDAP_SCOPE_ONELEVEL2-LDAP_SCOPE_SUBTREE。預設值為2
  •  ldap_timeout:連接LDAP伺服器時超時(以秒為單位)。預設值為5
  •  ldap_verify_cert:驗證來自LDAP伺服器的證書。預設為true
  •  ldap_group_basedn:在LDAP / AD中查找組的基本dn,例如ou=group,dc=mydomain,dc=com
  •  ldap_group_filter:搜索LDAP / AD組的過濾器,例如objectclass=group
  •  ldap_group_gid:用於命名LDAP / AD組的屬性,它可以是cnname
  •  ldap_group_scope:搜索ldap組的範圍。0-LDAP_SCOPE_BASE1-LDAP_SCOPE_ONELEVEL2-LDAP_SCOPE_SUBTREE。預設值為2
  •  self_registration :( 打開或關閉。預設打開)啟用/禁用用戶註冊他/她自己的能力。禁用時,新用戶只能由管理員用戶創建,只有管理員用戶可以在Harbor中創建新用戶。 註意:當auth_mode設置為ldap_auth時,始終禁用自註冊功能,並忽略此標誌。
  •  token_expiration:令牌服務創建的令牌的到期時間(以分鐘為單位),預設為30分鐘。
  •  project_creation_restriction:用於控制用戶有權創建項目的標誌。預設情況下,每個人都可以創建一個項目,設置為“adminonly”,這樣只有管理員才能創建項目。

 

4)配置存儲後端(可選)

  預設情況下,Harbor將圖像存儲在本地文件系統中。在生產環境中,您可以考慮使用其他存儲後端而不是本地文件系統,如S3OpenStack SwiftCeph等。這些參數是註冊表的配置。

  •  registry_storage_provider_name:註冊表的存儲提供程式名稱,可以是filesystems3gcsazure等。預設為filesystem
  •  registry_storage_provider_config:存儲提供程式配置的逗號分隔“keyvalue”對,例如“key1valuekey2value2”。預設為空字元串。
  •  registry_custom_ca_bundle:自定義根ca證書的路徑,它將註入到註冊表和圖表存儲庫容器的信任庫中。當用戶使用自簽名證書托管內部存儲時,通常需要這樣做。

例如,如果使用Openstack Swift作為存儲後端,則參數可能如下所示:

registry_storage_provider_name = swift
registry_storage_provider_config = “ username:admin,password:ADMIN_PASS,authurl:http:// keystone_addr:35357 / v3 / aut

註意:有關註冊表存儲後端的詳細信息,請參閱“ 註冊表配置參考

 

3.2 安裝主機的先決條件

3.2.1 硬體

資源容量描述
CPU 最小2 CPU 4 CPU是首選
記憶體 最小4GB 8GB是首選
磁碟 最小40GB 160GB是首選

 

3.2.2 軟體

軟體描述
Python 2.7或更高版本 請註意,您可能必須在Linux發行版(Gentoo,Arch)上安裝Python,預設情況下不安裝Python解釋器
Docker engine 版本1.10或更高版本 有關安裝說明,請參閱:https//docs.docker.com/engine/installation/
Docker Compose 版本1.6.0或更高版本 有關安裝說明,請參閱:https//docs.docker.com/compose/install/
Openssl 最新的是首選 為Harbor生成證書和密鑰

 

3.2.3 網路埠

協議描述
443 HTTPS Harbor門戶和核心API將接受此埠上的https協議請求
4443 HTTPS 只有在啟用“公證”時才需要連接到Dock的Docker Content Trust服務
80 HTTP Harbor埠和核心API將接受此埠上的http協議請求

 

3.2.4 添加一塊50G 新硬碟(如果磁碟足夠,可忽略)

博主也是太長時間沒有進行硬碟添加的操作了,熟悉一遍

1)查詢添加的磁碟的名字

$ fdisk -l
Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

 

2)對磁碟進行分區

$ fdisk /dev/sdb
Command (m for help): m
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Using default response p
Partition number (1-4, default 1): 
First sector (2048-104857599, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): 
Using default value 104857599
Partition 1 of type Linux and of size 50 GiB is set
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

  

3)磁碟文件格式化

$ [root@centos7-1 ~]# mkfs.ext3 /dev/sdb1

  

4)掛載磁碟

$ vim /etc/fstab    設為開機自動掛載
/dev/sdb1     		/data                   ext3    defaults        0 0
$ mount -a   掛載磁碟

  

5)驗證

[root@centos7-1 ~]# df -h /data
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        50G   52M   47G   1% /data

  

3.2.5 安裝docker編排工具 Docker Compose

方案1:直接yum安裝

[root@docker2 ~]# yum -y install docker-compose

  

方案2:在GitHub上選擇自己需要的版本下載安裝https://github.com/docker/compose/releases

$ curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
$ docker-compose version
docker-compose version 1.23.2, build 1110ad01
docker-py version: 3.6.0
CPython version: 3.6.7
OpenSSL version: OpenSSL 1.1.0f  25 May 2017

  

3.4 安裝搭建Harbor

3.4.1 下載Harbor 安裝包

資源可以下載的很慢,我已經將1.7.1版本放入我的網盤了,需要的私聊

[root@docker2 ~]# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.1.tgz
[root@docker2 ~]# tar -C /data/ -xvf harbor-offline-installer-v1.7.1.tgz

  

3.4.2 配置Harbor 服務

1)修改harbor.cfg 配置文件

[root@docker2 ~]# cd /data/harbor/
[root@docker2 harbor]# grep "^[^#]" harbor.cfg 
_version = 1.7.0
hostname = docker2
ui_url_protocol = http
max_job_workers = 2 
customize_crt = on
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data
admiral_url = NA
log_rotate_count = 50
log_rotate_size = 200M
http_proxy =
https_proxy =
no_proxy = 127.0.0.1,localhost,core,registry
email_identity = 
email_server = smtp.mydomain.com
email_server_port = 25
email_username = [email protected]
email_password = abc
email_from = admin <[email protected]>
email_ssl = false
email_insecure = false
harbor_admin_password = Harbor12345
auth_mode = db_auth
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_uid = uid 
ldap_scope = 2 
ldap_timeout = 5
ldap_verify_cert = true
ldap_group_basedn = ou=group,dc=mydomain,dc=com
ldap_group_filter = objectclass=group
ldap_group_gid = cn
ldap_group_scope = 2
self_registration = on
token_expiration = 30
project_creation_restriction = everyone
db_host = postgresql
db_password = along
db_port = 5432
db_user = postgres
redis_host = redis
redis_port = 6379
redis_password = along
redis_db_index = 1,2,3
clair_db_host = postgresql
clair_db_password = along
clair_db_port = 5432
clair_db_username = postgres
clair_db = postgres
clair_updaters_interval = 12
uaa_endpoint = uaa.mydomain.org
uaa_clientid = id
uaa_clientsecret = secret
uaa_verify_cert = true
uaa_ca_cert = /path/to/ca.pem
registry_storage_provider_name = filesystem
registry_storage_provider_config =
registry_custom_ca_bundle =

主要修改了:

  hostname:主機名

  max_job_workers:最大cpu數,小於等於自己伺服器的硬體

 

2)定義docker-compose.yml 文件(可省略)

docker-compose.yml 文件是docker 編排時,對容器的一些操作:

ports:

      - 80:80

      - 443:443

      - 4443:4443

眾多存儲器路徑

如:volumes:

      - /data/registry:/storage:z

在生產環境中,儘量將容器的存儲捲定義在空間較為充足的磁碟;

自己根據實際情況進行修改;

 

3.4.3 安裝啟動harbor

[root@docker2 harbor]# ./install.sh 

[Step 0]: checking installation environment ...

Note: docker version: 18.03.1

Note: docker-compose version: 1.23.2

[Step 1]: loading Harbor images ...
Loaded image: goharbor/registry-photon:v2.6.2-v1.7.1
Loaded image: goharbor/harbor-migrator:v1.7.1
Loaded image: goharbor/harbor-adminserver:v1.7.1
Loaded image: goharbor/harbor-core:v1.7.1
Loaded image: goharbor/harbor-log:v1.7.1
Loaded image: goharbor/harbor-jobservice:v1.7.1
Loaded image: goharbor/notary-server-photon:v0.6.1-v1.7.1
Loaded image: goharbor/clair-photon:v2.0.7-v1.7.1
Loaded image: goharbor/harbor-portal:v1.7.1
Loaded image: goharbor/harbor-db:v1.7.1
Loaded image: goharbor/redis-photon:v1.7.1
Loaded image: goharbor/nginx-photon:v1.7.1
Loaded image: goharbor/harbor-registryctl:v1.7.1
Loaded image: goharbor/notary-signer-photon:v0.6.1-v1.7.1
Loaded image: goharbor/chartmuseum-photon:v0.7.1-v1.7.1


[Step 2]: preparing environment ...
Generated and saved secret to file: /data/secretkey
Generated configuration file: ./common/config/nginx/nginx.conf
Generated configuration file: ./common/config/adminserver/env
Generated configuration file: ./common/config/core/env
Generated configuration file: ./common/config/registry/config.yml
Generated configuration file: ./common/config/db/env
Generated configuration file: ./common/config/jobservice/env
Generated configuration file: ./common/config/jobservice/config.yml
Generated configuration file: ./common/config/log/logrotate.conf
Generated configuration file: ./common/config/registryctl/env
Generated configuration file: ./common/config/core/app.conf
Generated certificate, key file: ./common/config/core/private_key.pem, cert file: ./common/config/registry/root.crt
The configuration files are ready, please use docker-compose to start the service.


[Step 3]: checking existing instance of Harbor ...


[Step 4]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating registry           ... done
Creating harbor-db          ... done
Creating registryctl        ... done
Creating harbor-adminserver ... done
Creating redis              ... done
Creating harbor-core        ... done
Creating harbor-portal      ... done
Creating harbor-jobservice  ... done
Creating nginx              ... done

✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at http://docker2. 
For more details, please visit https://github.com/goharbor/harbor .

  

3.4.3 安裝後驗證

1)打開了一些埠

[root@docker2 harbor]# ss -nutlp |grep docker
tcp    LISTEN     0      128    127.0.0.1:1514                  *:*                   users:(("docker-proxy",pid=1440,fd=4))
tcp    LISTEN     0      128      :::80                   :::*         

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 為什麼選擇MySQL資料庫? 毫無疑問,絕大多數的使用linux操作系統的大中小型互聯網網站都在使用MySQL作為其後端的資料庫存儲,從大型的BAT門戶,到電商平臺,分類門戶等無一例都使用MySQL資料庫。 My Sql 資料庫優點: 1、性能卓越,服務穩定,很少出現異常宕機 2、開放源代碼且無版權 ...
  • 如果安裝時或者工作中有問題,可以看錯誤日誌分析問題原因: 1005:創建表失敗 1006:創建資料庫失敗 1007:資料庫已存在,創建資料庫失敗 1008:資料庫不存在,刪除資料庫失敗 1009:不能刪除資料庫文件導致刪除資料庫失敗 1010:不能刪除數據目錄導致刪除資料庫失敗 1011:刪除資料庫 ...
  • 1、Nginx錯誤日誌信息介紹: error_log的語法格式及參數說明: error_log file level; 關鍵字 日誌文件 錯誤日誌級別 其中,關鍵字error_log 不能改變,日誌文件可以指定任意存放日誌的目錄,錯誤日誌級別常見的有{debug,info,notice,wam,er ...
  • (1)包組成:令牌包、數據包、握手包、專用包(特殊用途)。由包標識符(PID)做進一步細分: 令牌包:OUT、IN、SOF、Setup; 數據包:DATA0、DATA1、DATA2、MDATA; 握手包:ACK、NAK、STALL; 專用包:PRE、ERR、SPLIT、Ping....... (2) ...
  • 基礎知識 相信大家應該都知道linux的文件基本許可權,使用ls -l命令可以顯示文件的基本許可權,"-rwxrwxrwx.",第一位表示文件的屬性(是文件- ,目錄d等),後面每隔三位為屬主、屬組、其他用戶 對應的讀寫執行許可權。這個比較簡單很容易理解。 文件特殊許可權 單純的讀寫執行許可權無法滿足我們的基 ...
  • Xshell連接上Linux伺服器後經常自動中斷連接,報錯如下圖: 解決方法如下,進入/etc/ssh目錄打開sshd_config文件,找到下圖兩個參數並設置下圖所示的值: 重啟sshd即可解決,如下圖: ...
  • 直奔主題,在代理伺服器的Nginx配置(yourWebsite.conf)的location /中添加: 在業務伺服器的Nginx配置(yourWebsite.conf)的location中添加: 配置到這,可以用HTTP_X_FORWARDED_FOR獲取客戶端真實IP,以PHP為例,$_SERV ...
  • 目錄Diy智能家居-1.基於esp8266的語音控制系統(開篇) https://blog.csdn.net/arno1988/article/details/82628589 Diy智能家居-2.基於esp8266的語音控制系統(硬體篇) https://blog.csdn.net/arno198 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...