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...