Docker搭建官方私有倉庫registry及相關配置(推薦registry)

HaleyTiger發表於2020-11-26

在 Docker 中,當我們執行 docker pull xxx 的時候 ,它實際上是從 https://registry.hub.docker.com/ 這個地址去查詢,這就是Docker公司為我們提供的公共倉庫。

在工作中,我們不可能把企業專案push到公有倉庫進行管理。所以為了更好的管理映象,Docker不僅提供了一箇中央倉庫,同時也允許我們搭建本地私有倉庫。

docker 官方提供的私有倉庫 registry,用起來雖然簡單 ,但在管理的功能上存在不足。 Harbor是一個用於儲存和分發Docker映象的企業級Registry伺服器,harbor使用的是官方的docker registry(v2命名是distribution)服務去完成。harbor在docker distribution的基礎上增加了一些安全、訪問控制、管理的功能以滿足企業對於映象倉庫的需求。
下載地址:https://github.com/goharbor/harbor/releases

此文介紹registry私有倉庫搭建方法。

1、私有倉庫搭建與配置

(0)搜尋registry映象(可跳過)

[root@localhost java]# docker search registry

在這裡插入圖片描述


(1)拉取最新版(latest)私有倉庫映象:registry

[root@localhost java]# docker pull registry

在這裡插入圖片描述
檢視映象:
在這裡插入圖片描述


(2)建立並啟動私有倉庫容器(預設已啟動)

[root@localhost java]# docker run -di --name=registry -p 5000:5000 registry:latest

檢視已啟動的容器:
在這裡插入圖片描述


(3)暫時關閉防火牆(根據實際情況可跳過

[root@localhost ~]# systemctl stop firewalld

重啟防火牆命令:service iptables restart


(4)開啟瀏覽器,輸入地址:http://192.168.116.161:5000/v2/_catalog 看到{"repositories":[]} 表示私有倉庫搭建成功並且內容為空。

注:192.168.116.161 為linux伺服器宿主系統IP。

在這裡插入圖片描述


(5)修改daemon.json(讓docker信任私有倉庫地址

[root@localhost java]# vi /etc/docker/daemon.json

新增以下內容,儲存退出。

{"insecure-registries":["192.168.116.161:5000"]} 

內容如下圖:
在這裡插入圖片描述


(6)重啟docker 服務

[root@localhost java]# systemctl restart docker

2、映象上傳至私有倉庫

(1)標記映象為私有倉庫的映象

使用 docker tag 命令標記本地映象 jdk1.8,將其歸入某一倉庫。

格式:

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

【示例】:

原有映象:

在這裡插入圖片描述

如,將映象 jdk1.8:latest 標記為 192.168.116.161:5000/jdk1.8 映象:

[root@localhost java]# docker tag jdk1.8:latest 192.168.116.161:5000/jdk1.8

在這裡插入圖片描述


(2)啟動私服容器(registry)

[root@localhost java]# docker start registry

(3)上傳標記的映象

[root@localhost java]# docker push 192.168.116.161:5000/jdk1.8

在這裡插入圖片描述


(4)開啟瀏覽器,再次訪問私服:http://192.168.116.161:5000/v2/_catalog

注:192.168.116.161 為linux伺服器宿主系統IP。

如下圖,可以看到jdk1.8已經上傳到了私有倉庫中:

在這裡插入圖片描述


相關文章