官方組件registry搭建私有倉庫
registry服務(wù)器設(shè)置
拉取?registry?鏡像
?docker pull registry
開啟registries容器
docker run -d -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
客戶機(jī)設(shè)置
添加私有倉庫地址
使用配置文件 /etc/docker/daemon.json(沒有時(shí)新建該文件)添加私有倉庫地址(在任何需要推送以及拉去鏡像的docker宿主機(jī)上)
vim /etc/docker/daemon.json { "insecure-registries": ["192.168.80.101:5000"], "registry-mirrors": ["https://9yhxvwku.mirror.aliyuncs.com"] } insecure-registries ? ?私有倉庫地址 registry-mirrors ? 鏡像加速地址,也就是第三方倉庫,也可以改成自己的倉庫地址http://192.168.10.7:666,這樣docker pull的時(shí)候就不用加上私有倉庫的地址和端口了。 live-restore ? ? 啟用實(shí)時(shí)還原 默認(rèn)情況下,當(dāng)Docker守護(hù)程序終止時(shí),它將關(guān)閉正在運(yùn)行的容器。從Docker Engine 1.12開始,您可以配置守護(hù)程序,以便在守護(hù)程序不可用時(shí)容器仍在運(yùn)行。此功能稱為實(shí)時(shí)還原。實(shí)時(shí)還原選項(xiàng)有助于減少由于守護(hù)程序崩潰,計(jì)劃內(nèi)的停機(jī)或升級(jí)而導(dǎo)致的容器停機(jī)時(shí)間。 將配置添加到守護(hù)程序配置文件。在Linux上,默認(rèn)為/etc/docker/daemon.json
重新加載Docker守護(hù)程序
systemctl restart docker
?更改tag并上傳
更改tag
docker tag centos:7 192.168.80.101:5000/centos7:xue
推送到私有倉庫
docker push 192.168.80.101:5000/centos7:xue
瀏覽器訪問,查看存儲(chǔ)的鏡像?
http://192.168.80.101:5000/v2/_catalog
瀏覽器訪問,查看對(duì)應(yīng)鏡像的標(biāo)簽
192.168.80.101:5000/v2/centos7/tags/list
?
?其他客戶機(jī)拉取鏡像(別忘了配置文件添加倉庫地址)
docker pull 192.168.80.101:5000/centos7:xue
Harbor 組件搭建私有倉庫
(1)什么是Harbor
Harbor 是 VMware 公司開源的企業(yè)級(jí) Docker Registry 項(xiàng)目,其目標(biāo)是幫助用戶迅速搭建一個(gè)企業(yè)級(jí)的 Docker Registry 服務(wù)。Harbor以 Docker 公司開源的 Registry 為基礎(chǔ),提供了圖形管理 UI 、基于角色的訪問控制(Role Based AccessControl) 、AD/LDAP 集成、以及審計(jì)日志(Auditlogging) 等企業(yè)用戶需求的功能,同時(shí)還原生支持中文。
Harbor 的每個(gè)組件都是以 Docker 容器的形式構(gòu)建的,使用 docker-compose 來對(duì)它進(jìn)行部署。用于部署 Harbor 的 docker-compose 模板位于 harbor/docker-compose.yml。
(2)Harbor的特性
1、基于角色控制:用戶和倉庫都是基于項(xiàng)目進(jìn)行組織的,而用戶在項(xiàng)目中可以擁有不同的權(quán)限。
2、基于鏡像的復(fù)制策略:鏡像可以在多個(gè)Harbor實(shí)例之間進(jìn)行復(fù)制(同步)。
3、支持 LDAP/AD:Harbor 可以集成企業(yè)內(nèi)部已有的 AD/LDAP(類似數(shù)據(jù)庫的一張表),用于對(duì)已經(jīng)存在的用戶認(rèn)證和管理。
4、鏡像刪除和垃圾回收:鏡像可以被刪除,也可以回收鏡像占用的空間。
5、圖形化用戶界面:用戶可以通過瀏覽器來瀏覽,搜索鏡像倉庫以及對(duì)項(xiàng)目進(jìn)行管理。
6、審計(jì)管理:所有針對(duì)鏡像倉庫的操作都可以被記錄追溯,用于審計(jì)管理。
7、支持 RESTful API:RESTful API 提供給管理員對(duì)于 Harbor 更多的操控, 使得與其它管理軟件集成變得更容易。
8、Harbor和docker registry的關(guān)系:Harbor實(shí)質(zhì)上是對(duì)docker registry做了封裝,擴(kuò)展了自己的業(yè)務(wù)模板。
(3)Harbor的構(gòu)成
Harbor 在架構(gòu)上主要有 Proxy、Registry、Core services、Database(Harbor-db)、Log collector(Harbor-log)、Job services 六個(gè)組件。●Proxy: 是一個(gè) nginx 的前端代理,Harbor 的 Registry、UI、Token 服務(wù)等組件,都處在 nginx 反向代理后邊。 該代理將來自瀏覽器、docker clients 的請(qǐng)求轉(zhuǎn)發(fā)到后端不同的服務(wù)上。
●Registry: 負(fù)責(zé)儲(chǔ)存 Docker 鏡像,并處理 Docker push/pull 命令。由于要對(duì)用戶進(jìn)行訪問控制,即不同用戶對(duì) Docker 鏡像 有不同的讀寫權(quán)限,Registry 會(huì)指向一個(gè) Token 服務(wù),強(qiáng)制用戶的每次 Docker pull/push 請(qǐng)求都要攜帶一個(gè)合法的 Token, Registry 會(huì)通過公鑰對(duì) Token 進(jìn)行解密驗(yàn)證。
●Core services: Harbor的核心功能,主要提供以下3個(gè)服務(wù):
1)UI(harbor-ui): 提供圖形化界面,幫助用戶管理 Registry 上的鏡像(image), 并對(duì)用戶進(jìn)行授權(quán)。
2)WebHook:為了及時(shí)獲取Registry 上image 狀態(tài)變化的情況,在Registry 上配置 Webhook,把狀態(tài)變化傳遞給 UI 模塊。
3)Token 服務(wù):負(fù)責(zé)根據(jù)用戶權(quán)限給每個(gè) Docker push/pull 命令簽發(fā) Token。Docker 客戶端向 Registry 服務(wù)發(fā)起的請(qǐng)求, 如果不包含 Token,會(huì)被重定向到 Token 服務(wù),獲得 Token 后再重新向 Registry 進(jìn)行請(qǐng)求。●Database(harbor-db):為core services提供數(shù)據(jù)庫服務(wù),負(fù)責(zé)儲(chǔ)存用戶權(quán)限、審計(jì)日志、Docker 鏡像分組信息等數(shù)據(jù)。
●Job services: 主要用于鏡像復(fù)制,本地鏡像可以被同步到遠(yuǎn)程 Harbor 實(shí)例上。
●Log collector(harbor-log): 負(fù)責(zé)收集其他組件的日志到一個(gè)地方。
Harbor 的每個(gè)組件都是以 Docker 容器的形式構(gòu)建的,因此,使用 Docker Compose 來對(duì)它進(jìn)行部署。
總共分為7個(gè)容器運(yùn)行,通過在docker-compose.yml所在目錄中執(zhí)行 docker-compose ps 命令來查看, 名稱分別為:nginx、harbor-jobservice、harbor-ui、harbor-db、harbor-adminserver、registry、harbor-log。
其中 harbor-adminserver 主要是作為一個(gè)后端的配置數(shù)據(jù)管理,并沒有太多的其他功能。harbor-ui 所要操作的所有數(shù)據(jù)都通過 harbor-adminserver 這樣一個(gè)數(shù)據(jù)配置管理中心來完成。
?
Harbor 部署?
Harbor服務(wù)器?? ??? ??? ?192.168.80.101? ? ? ? docker-ce、docker-compose、harbor-offline-v1.2.2
client服務(wù)器?? ??? ??? ?192.168.80.102? ? ? ? docker-ce
添加私有倉庫地址(Docker客戶機(jī)若要使用私有倉庫[push pull],都要做這一步)
使用配置文件 /etc/docker/daemon.json(沒有時(shí)新建該文件)添加私有倉庫地址(在任何需要推送以及拉去鏡像的docker宿主機(jī)上)
vim /etc/docker/daemon.json { "insecure-registries": ["192.168.80.101","192.168.80.102"], "registry-mirrors": ["https://9yhxvwku.mirror.aliyuncs.com"] } 可以對(duì)接兩個(gè)私有倉庫。如果不是最后一行,別忘了末尾逗號(hào)!這一句不能寫在配置文件里 記得刪掉
重新加載Docker守護(hù)程序
systemctl restart docker
1. 部署 Docker-Compose 服務(wù)
下載或者上傳 Docker-Compose
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose -v
2. 部署 Harbor 服務(wù)
(1)下載或上傳 Harbor 安裝程序
Harbor的壓縮包下載地址:https://github.com/goharbor/harbor/releases在線獲取安裝包安裝 wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/ 或是提前將安裝包移動(dòng)到文件夾解壓 tar zxvf /opt/harbor-offline-installer-v1.10.18.tgz -C /usr/local/
(2)修改harbor安裝的配置文件
vim /usr/local/harbor/harbor.yml --5行--修改,設(shè)置為Harbor服務(wù)器的IP地址或者域名 hostname = 192.168.80.101 --59行--指定管理員的初始密碼,默認(rèn)的用戶名/密碼是admin/Harbor12345 harbor_admin_password = Harbor12345 不使用https 全部注釋 # https related config #https: # https port for harbor, default is 443 # port: 443 # The path of cert and key files for nginx # certificate: /your/certificate/path # private_key: /your/private/key/path
關(guān)于 Harbor.cfg 配置文件中有兩類參數(shù):所需參數(shù)和可選參數(shù)
1、所需參數(shù):這些參數(shù)需要在配置文件 Harbor.cfg 中設(shè)置。如果用戶更新它們并運(yùn)行 install.sh 腳本重新安裝 Harbor, 參數(shù)將生效。具體參數(shù)如下:
●hostname:用于訪問用戶界面和 register 服務(wù)。它應(yīng)該是目標(biāo)機(jī)器的 IP 地址或完全限定的域名(FQDN),例如 192.168.80.101 或 hub.kgc.cn。不要使用 localhost 或 127.0.0.1 為主機(jī)名。●ui_url_protocol:(http 或 https,默認(rèn)為 http)用于訪問 UI 和令牌/通知服務(wù)的協(xié)議。如果公證處于啟用狀態(tài),則此參數(shù)必須為 https。
●max_job_workers:鏡像復(fù)制作業(yè)線程。
●db_password:用于db_auth 的MySQL數(shù)據(jù)庫root 用戶的密碼。
●customize_crt:該屬性可設(shè)置為打開或關(guān)閉,默認(rèn)打開。打開此屬性時(shí),準(zhǔn)備腳本創(chuàng)建私鑰和根證書,用于生成/驗(yàn)證注冊(cè)表令牌。當(dāng)由外部來源提供密鑰和根證書時(shí),將此屬性設(shè)置為 off。
●ssl_cert:SSL 證書的路徑,僅當(dāng)協(xié)議設(shè)置為 https 時(shí)才應(yīng)用。
●secretkey_path:用于在復(fù)制策略中加密或解密遠(yuǎn)程 register 密碼的密鑰路徑。
2、可選參數(shù):這些參數(shù)對(duì)于更新是可選的,即用戶可以將其保留為默認(rèn)值,并在啟動(dòng) Harbor 后在 Web UI 上進(jìn)行更新。如果進(jìn)入 Harbor.cfg,只會(huì)在第一次啟動(dòng) Harbor 時(shí)生效,隨后對(duì)這些參數(shù)的更新,Harbor.cfg 將被忽略。
注意:如果選擇通過 UI 設(shè)置這些參數(shù),請(qǐng)確保在啟動(dòng) Harbor 后立即執(zhí)行此操作。具體來說,必須在注冊(cè)或在 Harbor 中創(chuàng)建任何新用戶之前設(shè)置所需的 auth_mode。當(dāng)系統(tǒng)中有用戶時(shí)(除了默認(rèn)的 admin 用戶), auth_mode 不能被修改。 具體參數(shù)如下:
●Email:Harbor 需要該參數(shù)才能向用戶發(fā)送“密碼重置”電子郵件,并且只有在需要該功能時(shí)才啟用。請(qǐng)注意,在默認(rèn)情況下 SSL 連接時(shí)沒有啟用。如果 SMTP 服務(wù)器需要 SSL,但不支持 STARTTLS,那么應(yīng)該通過設(shè)置啟用 SSL email_ssl = TRUE。●harbor_admin_password:管理員的初始密碼,只在 Harbor 第一次啟動(dòng)時(shí)生效。之后, 此設(shè)置將被忽略,并且應(yīng)在 UI 中設(shè)置管理員的密碼。請(qǐng)注意,默認(rèn)的用戶名/密碼是admin/Harbor12345。
●auth_mode:使用的認(rèn)證類型,默認(rèn)情況下,它是 db_auth,即憑據(jù)存儲(chǔ)在數(shù)據(jù)庫中。對(duì)于LDAP身份驗(yàn)證,請(qǐng)將其設(shè)置為 ldap_auth。
●self_registration:?jiǎn)⒂?禁用用戶注冊(cè)功能。禁用時(shí),新用戶只能由 Admin 用戶創(chuàng)建,只有管理員用戶可以在 Harbor 中創(chuàng)建新用戶。注意:當(dāng) auth_mode 設(shè)置為 ldap_auth 時(shí),自注冊(cè)功能將始終處于禁用狀態(tài),并且該標(biāo)志被忽略。
●Token_expiration:由令牌服務(wù)創(chuàng)建的令牌的到期時(shí)間(分鐘),默認(rèn)為 30 分鐘。
●project_creation_restriction:用于控制哪些用戶有權(quán)創(chuàng)建項(xiàng)目的標(biāo)志。默認(rèn)情況下,每個(gè)人都可以創(chuàng)建一個(gè)項(xiàng)目。 如果將其值設(shè)置為“adminonly”,那么只有 admin 可以創(chuàng)建項(xiàng)目。
●verify_remote_cert:打開或關(guān)閉,默認(rèn)打開。此標(biāo)志決定了當(dāng)Harbor與遠(yuǎn)程 register 實(shí)例通信時(shí)是否驗(yàn)證 SSL/TLS 證書。 將此屬性設(shè)置為 off 將繞過 SSL/TLS 驗(yàn)證,這在遠(yuǎn)程實(shí)例具有自簽名或不可信證書時(shí)經(jīng)常使用。
另外,默認(rèn)情況下,Harbor 將鏡像存儲(chǔ)在本地文件系統(tǒng)上。在生產(chǎn)環(huán)境中,可以考慮 使用其他存儲(chǔ)后端而不是本地文件系統(tǒng),如 S3、Openstack Swif、Ceph 等對(duì)象存儲(chǔ)。但需要更新 common/templates/registry/config.yml 文件。
Harbor的默認(rèn)鏡像存儲(chǔ)路徑在 /data/registry 目錄下,映射到docker容器里面的 /storage 目錄下。
這個(gè)參數(shù)是在 docker-compose.yml 中指定的,在 docker-compose up -d 運(yùn)行之前修改。
如果希望將 Docker 鏡像存儲(chǔ)到其他的磁盤路徑,可以修改這個(gè)參數(shù)。
3. 啟動(dòng) Harbor
cd /usr/local/harbor/
在配置好了 harbor.cfg 之后,執(zhí)行 ./prepare 命令,為 harbor 啟動(dòng)的容器生成一些必要的文件(環(huán)境)
再執(zhí)行命令 ./install.sh 以 pull 鏡像并啟動(dòng)容器cd /usr/local/harbor/ ./prepare ./install.sh
4. 查看 Harbor 啟動(dòng)鏡像
cd /usr/local/harbor/ docker-compose ps docker-compose up -d ? ? ?#啟動(dòng) docker-compose stop ? ? ? #停止 docker-compose restart ? ?#重新啟動(dòng) docker-compose down && docker-compose up -d #重啟無效方法
5. 創(chuàng)建一個(gè)新項(xiàng)目
(1)瀏覽器訪問:http://192.168.80.101 登錄 Harbor WEB UI 界面,默認(rèn)的管理員用戶名和密碼是 admin/Harbor12345
(2)輸入用戶名和密碼登錄界面后可以創(chuàng)建一個(gè)新項(xiàng)目。點(diǎn)擊“+項(xiàng)目”按鈕
(3)填寫項(xiàng)目名稱為“projectxue”,點(diǎn)擊“確定”按鈕,創(chuàng)建新項(xiàng)目
(4)此時(shí)可使用 Docker 命令在本地通過 127.0.0.1 來登錄和推送鏡像。默認(rèn)情況下,Registry 服務(wù)器在端口 80 上偵聽。
5.1 本地上傳鏡像
//登錄 Harbor
docker login -u admin -p Harbor12345 http://192.168.80.101 #-u admin -p Harbor12345 為免交互格式
//將已存在的鏡像打標(biāo)簽
格式:docker tag 鏡像:標(biāo)簽 ?倉庫IP/項(xiàng)目名稱/鏡像名:標(biāo)簽docker tag centos:7 192.168.80.101/projectxue/centos7:xue
//上傳鏡像到 Harbor
docker push 192.168.80.101/projectxue/centos7:xue
在 Harbor 界面 library 目錄下可看見此鏡像及相關(guān)信息
5.2 本地下載鏡像
在web端進(jìn)入庫,鏡像,點(diǎn)擊復(fù)制pull命令,進(jìn)入服務(wù)器粘貼運(yùn)行即可。
docker pull 192.168.80.101/projectxue/centos7:xue
6. 在其他客戶端上傳鏡像(此時(shí)使用另一臺(tái)192.168.80.102 客戶機(jī))
以上操作都是在 Harbor 服務(wù)器本地操作。如果其他客戶端登錄到 Harbor,就會(huì)報(bào)如下錯(cuò)誤。出現(xiàn)這問題的原因?yàn)镈ocker Registry 交互默認(rèn)使用的是 HTTPS,但是搭建私有鏡像默認(rèn)使用的是 HTTP 服務(wù),所以與私有鏡像交互時(shí)出現(xiàn)以下錯(cuò)誤。
docker login -u admin -p Harbor12345 http://192.168.80.101 WARNING! Using --password via the CLI is insecure. Use --password-stdin. Error response from daemon: Get https://192.168.80.101/v2/: dial tcp 192.168.80.101:443: connect: connection refused
(1)在 Docker 客戶端配置操作
//解決辦法是:在 Docker server 啟動(dòng)的時(shí)候,增加啟動(dòng)參數(shù),默認(rèn)使用 HTTP 訪問。vim /usr/lib/systemd/system/docker.service --13行--修改 ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.80.101 --containerd=/run/containerd/containerd.sock 或 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.80.101
//重啟 Docker,再次登錄
systemctl daemon-reload systemctl restart docker
//再次登錄 Harbor
docker login -u admin -p Harbor12345 http://192.168.80.101 WARNING! Using --password via the CLI is insecure. Use --password-stdin. WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Login Succeeded
//將自動(dòng)保存憑據(jù)到/root/.docker/config.json,下次登錄時(shí)可直接使用憑據(jù)登錄 Harbor
//下載鏡像進(jìn)行測(cè)試
docker pull 192.168.80.101/peojectxue/nginx:v1
//上傳鏡像進(jìn)行測(cè)試
docker pull cirros docker tag cirros:latest 192.168.80.101/peojectxue?/cirros:v2 docker push 192.168.80.10/peojectxue?/cirros:v2
(2)刷新 Harbor 的 Web 管理界面進(jìn)行查看,會(huì)發(fā)現(xiàn) peojectxue?項(xiàng)目里面有兩個(gè)鏡像
維護(hù)管理Harbor
1. 通過 Harbor Web 創(chuàng)建項(xiàng)目
在 Harbor 倉庫中,任何鏡像在被 push 到 regsitry 之前都必須有一個(gè)自己所屬的項(xiàng)目。
單擊“+項(xiàng)目”,填寫項(xiàng)目名稱,項(xiàng)目級(jí)別若設(shè)置為"私有",則不勾選。如果設(shè)置為公共倉庫,則所有人對(duì)此項(xiàng)目下的鏡像擁有讀權(quán)限,命令行中不需要執(zhí)行"Docker login"即可下載鏡像,鏡像操作與 Docker Hub 一致
2. 創(chuàng)建 Harbor 用戶
(1)創(chuàng)建用戶并分配權(quán)限
在 Web 管理界面中單擊系統(tǒng)管理 -> 用戶管理 -> +用戶,
填寫用戶名為“666”,郵箱為“666@kgc.com”,全名為“666”,密碼為“Abc123456”,注釋為“管理員”(可省略)。
附:用戶創(chuàng)建成功后,單擊左側(cè)“...”按鈕可將上述創(chuàng)建的用戶設(shè)置為管理員角色或進(jìn)行刪除操作,本例不作任何設(shè)置。角色?? ??? ??? ??? ?權(quán)限說明
訪客?? ??? ??? ??? ?對(duì)于指定項(xiàng)目擁有只讀權(quán)限
開發(fā)人員?? ??? ??? ?對(duì)于指定項(xiàng)目擁有讀寫權(quán)限,但沒用刪除權(quán)限
維護(hù)人員?? ??? ??? ?對(duì)于指定項(xiàng)目擁有讀寫權(quán)限,也能對(duì)修改其它配置,比如創(chuàng)建 Webhooks
項(xiàng)目管理員?? ??? ??? ?除了讀寫權(quán)限,同時(shí)擁有用戶管理/鏡像掃描等管理權(quán)限(2)添加項(xiàng)目成員
單擊項(xiàng)目 -> projectxue-> 成員 -> + 成員,填寫上述創(chuàng)建的用戶 666?并分配角色為“開發(fā)人員”。
附:此時(shí)單擊左側(cè)“...”按鈕仍然可對(duì)成員角色進(jìn)行變更或者刪除操作(3)在客戶端上使用普通賬戶操作鏡像
//刪除上述打標(biāo)簽的本地鏡像docker rmi 192.168.80.101/projectxue/cirros:v2
//先退出當(dāng)前用戶,然后使用上述創(chuàng)建的賬戶666 登錄
docker logout 192.168.80.101 docker login 192.168.80.101 或 docker login -u 666?-p Abc123456 http://192.168.80.101
//下載和上傳鏡像進(jìn)行測(cè)試?
docker pull 192.168.80.101/projectxue/cirros:v2 docker tag cirros:latest 192.168.80.101/projectxue/cirros:v3 docker push 192.168.80.101/projectxue/cirros:v3
3. 查看日志
Web 界面日志,操作日志按時(shí)間順序記錄用戶相關(guān)操作
4. 修改 Harbor.cfg 配置文件
要更改 Harbor的配置文件中的可選參數(shù)時(shí),請(qǐng)先停止現(xiàn)有的 Harbor實(shí)例并更新 Harbor.cfg;然后運(yùn)行 prepare 腳本來填充配置; 最后重新創(chuàng)建并啟動(dòng) Harbor 的實(shí)例。
使用 docker-compose 管理 Harbor 時(shí),必須在與 docker-compose.yml 相同的目錄中運(yùn)行。
cd /usr/local/harbor docker-compose down -v
vim harbor.cfg?? ??? ??? ?#只能修改可選參數(shù) ./prepare docker-compose up -d
//如果有以下報(bào)錯(cuò),需要開啟防火墻 firewalld 服務(wù)解決Creating network "harbor_harbor" with the default driver ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: ?(iptables failed: iptables --wait -t nat -I DOCKER -i br-b53c314f45e8 -j RETURN: iptables: No chain/target/match by that name. ?(exit status 1))
systemctl restart firewalld.service docker-compose up -d
5. 移除 Harbor 服務(wù)容器同時(shí)保留鏡像數(shù)據(jù)/數(shù)據(jù)庫,并進(jìn)行遷移
//在Harbor服務(wù)器上操作
(1)移除 Harbor 服務(wù)容器cd /usr/local/harbor docker-compose down -v
(2)把項(xiàng)目中的鏡像數(shù)據(jù)進(jìn)行打包
//持久數(shù)據(jù),如鏡像,數(shù)據(jù)庫等在宿主機(jī)的/data/目錄下,日志在宿主機(jī)的/var/log/Harbor/目錄下ls /data/registry/docker/registry/v2/repositories/projectxue cd /data/registry/docker/registry/v2/repositories/projectxue tar zcvf kgc-registry.tar.gz ./*
6. 如需重新部署,需要移除 Harbor 服務(wù)容器全部數(shù)據(jù)
cd /usr/local/harbor docker-compose down -v rm -r /data/database rm -r /data/registry
防止harbor單點(diǎn)故障(多harbor服務(wù)器同步)
1.在另一臺(tái)docker服務(wù)器(192.168.80.102)上安裝好 Docker,harbor,并且更改harbor.yml中配置同上
?2.兩個(gè)服務(wù)器創(chuàng)建復(fù)制用的倉庫,互相指定對(duì)方的主機(jī)IP 用戶名與密碼
![]()
?3 推送方式 101主機(jī) 推送給 102主機(jī) 鏡像
?101服務(wù)器復(fù)制管理-新建規(guī)則 事件觸發(fā)推送(只要有push上傳動(dòng)作就同步)
101服務(wù)器推送鏡像
docker login -u admin -p Harbor12345 http://192.168.80.101 docker push 192.168.80.101/library/centos7:xue
102服務(wù)器收到推送?
4. 102主機(jī) 拉取方式 獲得 101主機(jī) 鏡像
取消101更改設(shè)置 的推送規(guī)則
102設(shè)置復(fù)制規(guī)則 拉取?定時(shí)方式每1分鐘拉取一次
?
102 1分鐘后拉取了 101 存在的鏡像
?
Harbor倉庫存儲(chǔ)位置
?Harbor倉庫所有文件都存儲(chǔ)在這個(gè)目錄中。若要做倉庫遷移將本目錄打包即可。
/data/registry/docker/registry/v2/repositories
Harbor故障排除
有時(shí)重啟docker,或是掛起虛擬機(jī),會(huì)導(dǎo)致harbor web網(wǎng)頁無法訪問等問題。
docker-compose ps查看。如下錯(cuò)誤
此時(shí)可以?docker-compose restart 重新啟動(dòng)。如果恢復(fù)正常,就萬事大吉。
如果還是不能訪問,則docker-compose down && docker-compose up -d 先down再重新構(gòu)建。文章來源:http://www.zghlxwxcb.cn/news/detail-613134.html
cd /usr/local/harbor/ docker-compose ps #查看狀態(tài) docker-compose restart ???#重新啟動(dòng) docker-compose down && docker-compose up -d #重啟無效方法
有時(shí)可能還需要修改sysctl.conf,修改完成后刷新,重啟網(wǎng)卡,重啟或者重新構(gòu)建docker compose文章來源地址http://www.zghlxwxcb.cn/news/detail-613134.html
vim /etc/sysctl.conf net.ipv4.ip_forward = 1
systemctl -p systemctl restart network
docker-compose restart ???#重新啟動(dòng) docker-compose down && docker-compose up -d #重啟無效方法
到了這里,關(guān)于Docker--harbor Docker--registry 私有倉庫部署與管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!