docker私有映象服務搭建

2021-09-27 13:57:25 字數 3169 閱讀 6846

docker私服的搭建很簡單,我們只需要執行乙個名叫registry的docker映象並啟動,就構建了乙個docker私服。這裡如果私服的伺服器位址為192.168.56.141對應主機名為docker01,我們的docker伺服器在另外一台伺服器上,伺服器位址為192.168.56.142,對應主機名為docker02。一般為了管理方便,我們的docker私服會單獨選擇一台伺服器,而真正執行docker容器的機器是另一台伺服器。下面給出兩台伺服器的資訊:

docker01 -> ip: 192.168.56.141  -> docker run -d registry

docker02 -> ip:192.168.56.142  -> docker pull mongo  -> docker tag mongo:latest docker01:5000/mongo:latest -> docker push docker01:5000/mongo

我們本次實驗的結果就是通過搭建docker私服最終感受一下從私服拉取映象是多麼快。

這次實驗我採用的虛擬機器是ubuntu1804,這樣,我們在開始之前,需要安裝docker,具體安裝,我直接採用的是sudo apt install docker.io。

檢查安裝版本資訊:

直接安裝完成,docker服務就開啟了。

開啟docker私服,其實很簡單,我們直接在docker01上執行registry映象即可。

執行完成,我們就開啟了乙個docker私服,下面就是通過curl命令驗證一下私服倉庫最開始沒有映象的情況:

我們需要向docker01私服上推送一些映象,這個映象第一次需要我們通過官方倉庫拉取:

通過官方拉取映象會很慢,我們可以考慮增加映象加速器配置:第一次是新增,後面就是修改/etc/docker/daemon.json,我這裡是配置的阿里雲的加速器。

配置完成,需要我們重啟docker服務。

拉取成功了,我們需要給這個映象打上標籤,就是tag,如下所示:

# docker tag mongo:latest docker01:5000/mongo:latest

接著我們需要push到docker01上。

# docker push docker01:5000/mongo

如果不出意外,肯定會失敗的,這是因為我們使用的是http協議,而registry預設是使用的https協議:

我們需要修改docker02,也就是docker私服對應客戶端這邊的daemon.json配置檔案,增加安全選項配置:"insecure-registries":["docker01:5000"],最後完整的配置如下所示:

我們再次push,就成功了。

驗證推送成功: 

這時候docker02上有兩個映象乙個是原始拉取的,再乙個是我們通過tag命令打出的。而在docker01的私服倉庫上有乙個mongo的映象,不過docker01上通過docker images還是只有乙個registry的映象。這裡好像比較難以理解,docker01上的私服是通過docker執行的,而他私服倉庫中的映象不是docker images的映象,所以只能通過http://docker01:5000/v2/_catalog來檢視。

我們將docker02上的所有映象都刪除,通過如下命令:

# docker rmi mongo 

# docker rmi docker01:5000/mongo

這是為了演示,當我們從docker01私服上拉取映象的時候是多麼快速:

拉取過來的映象:

以上就是搭建私服的過程,這是簡單體驗了一下,一般私服是通過https協議來推送和拉取的,所以文中會有乙個預設推送失敗的情況,但是也可以通過設定跳過這個限定。

1、私服搭建還是借助於docker映象容器,映象的名字就是registry。預設開啟的埠是5000。

2、私服搭建很簡單,我們一般把私服只作為乙個私服伺服器,不會再當做除registry容器之外執行的docker伺服器。

3、推送映象的時候,預設是https協議,為了繞過https,我們可以設定daemon.json配置檔案中的引數insecure-registries。

4、推送映象的時候 ,我們使用的命令是docker push docker01:5000/mongo,就將mongo映象推送到了私服倉庫。映象與私服倉庫建立關係就是靠的映象前面的這一串url(docker01:5000/)。

5、整個實驗比較繞的地方是docker02先從遠端倉庫拉取映象,然後tag,再push,最後刪除本地映象,再從docker01私服倉庫拉取映象,過程很複雜,主要是為了演示私服搭建的過程以及使用。實際中不止乙個docker02,好多個docker伺服器,這個時候就能看出私服的威力。

搭建docker映象私有倉庫

docker官方提供了docker hub來儲存我們的映象檔案。但由於docker hub管理的都是公開的映象,並且訪問的時候有時會特別的慢。所以我們打算來搭建乙個私有的倉庫,需要使用官方庫中的registry映象。執行registry映象 docker run d p 5000 5000 v ro...

Docker搭建私有映象倉庫

使用docker官方的registry映象搭建私有倉庫 一 安裝 1.拉取私有倉庫映象 docker pull registry22.建立啟動私有倉庫容器 mkdir pv usr local docker registry docker run itd v usr local docker reg...

使用Harbor搭建Docker私有映象倉庫服務

一 什麼是harbor 其他特點還包括了提供視覺化的web介面管理映象,基於角色的訪問控制 acl ad ldap的整合 以及審計日誌 audit logging 等企業使用者需要的功能,同時還原生支援中文。harbor的每個元件都是以docker容器的形式構建和執行的,並使用docker comp...