快速搭建并遷移離線docker registry鏡像倉庫

Docker Registry是Dockers鏡像的存儲和管理中心蛉拙,在一個離線或沒有外網(wǎng)網(wǎng)絡的環(huán)境下使用大量docker鏡像,需要提供一個鏡像倉庫時需要怎么操作比較合適呢?

Registry可以通過push的方式上傳鏡像到倉庫中蚕断,默認將上傳的鏡像數(shù)據(jù)保存在/var/lib/registry目錄。那么在離線時我們可以將regsitry本身的鏡像save成tar包入挣,將/var/lib/registry數(shù)據(jù)目錄也打包成tar包亿乳,然后在目標機器上通過volume的形式掛載運行即可提供服務。

具體的實現(xiàn)步驟如下:

前置說明:

擬定有兩臺已經(jīng)安裝了Docker的機器A和B径筏,A機器所在網(wǎng)絡能夠訪問公網(wǎng)葛假,B機器所在網(wǎng)絡不能訪問公網(wǎng)。
這樣為了模擬了部分企業(yè)網(wǎng)絡隔離的場景滋恬。

A機器準備數(shù)據(jù)

下載docker registry鏡像

在有A機器上下載registry的docker鏡像

docker pull docker.io/registry

可以直接在docker hub的官網(wǎng)下載最新版本聊训,也可以使用國內(nèi)的提供的免費的鏡像倉庫。例如

docker pull hub.c.163.com/library/registry:latest

創(chuàng)建docker鏡像存儲目錄

在A機器上創(chuàng)建一個保存docker鏡像overlay的本地目錄

mkdir -p /data/registry-data 

添加http訪問權限

修改文件/etc/docker/daemon.json恢氯,之后就可以使用http的方式registry带斑,默認是使用https的方式訪問。

{ 
    "insecure-registries":["127.0.0.1:5000"],
    "log-driver": "json-file",
    "log-opt": {
        "max-size": "100m",
        "max-file": "5"
    }
 }

這里主要添加insecure-registries配置即可勋拟,另外的兩條是對docker log的限制勋磕。
有多條時配置時,可以使用逗號,分隔多個敢靡。

重啟docker服務

修改完/etc/docker/daemon.json后朋凉,需要重啟docker服務才能使配置生效。

systemctl restart docker

其他的系統(tǒng)分別使用不同的方法重啟醋安。
例如:
centos6/redhat6

service docker restart

或者部分環(huán)境可以使用如下方法重啟服務

/etc/init.d/docker restart

運行registry服務

在A機器上運行registry服務并將/data/registry-data目錄掛載到容器內(nèi)/var/lib/registry目錄中

docker run 
-d --name=registry  \
-v /registry-data:/var/lib/registry  \
-p 5000:5000 docker.io/registry

修改本地鏡像tag

docker鏡像上傳時需要指定倉庫名稱和鏡像名稱

docker tag docker.io/centos  127.0.0.1:5000/centos

這里的例子將鏡像的倉庫名稱寫成127.0.0.1:5000,也可以根據(jù)環(huán)境信息配置墓毒,建議使用域名的方式管理鏡像吓揪。

上傳鏡像到本地的registry倉庫中

在A機器上將需要的鏡像都push到該registry中,

docker push 127.0.0.1:5000/centos

這里只提供了一個centos的鏡像下載和上傳的方法所计,類推可以將需要的鏡像都上傳到本地registry中柠辞。

打包registry鏡像

在A機器上打包registry鏡像

docker save -o registry.tar docker.io/registry

由于B 機器上可能沒有registry倉庫本身的鏡像,這里可以將registry的鏡像save成tar包主胧。

打包/data/registry-data目錄

在A機器上打包/data/registry-data目錄

tar czvf registry-images-data.tar.gz /data/registry-data

移動數(shù)據(jù)

將registry.tar 和 registry-images-data.tar.gz 兩個文件復制到B機器上叭首。
復制的方法可以有多種 习勤,比如scp/ftp/U盤/等方式;
建議在復制前先使用md5sum/sha256計算一個校驗值焙格,在目標機器再次校驗一次图毕,確保文件在傳輸過程中沒有異常。

B 機器建立離線registry

修改B機器上docker配置文件添加http訪問權限

修改文件/etc/docker/daemon.json眷唉,之后就可以使用http的方式registry予颤,默認是使用https的方式訪問。

{ 
    "insecure-registries":["127.0.0.1:5000"],
    "log-driver": "json-file",
    "log-opt": {
        "max-size": "100m",
        "max-file": "5"
    }
 }

這里主要添加insecure-registries配置即可冬阳,另外的兩條是對docker log的限制蛤虐。
有多條時配置時肝陪,可以使用逗號,分隔多個。

重啟docker服務

修改完/etc/docker/daemon.json后饲常,需要重啟docker服務才能使配置生效不皆。

systemctl restart docker

其他的系統(tǒng)分別使用不同的方法重啟熊楼。
例如:
centos6/redhat6

service docker restart

或者部分環(huán)境可以使用如下方法重啟服務

/etc/init.d/docker restart

導入registry鏡像

在B機器上導入registry的鏡像

docker load -i registry.tar

鏡像registry的鏡像導入到本地的docker中

解壓鏡像數(shù)據(jù)

在B機器上解壓鏡像數(shù)據(jù)

tar xf registry-images-data.tar.gz -C /data/registry-data

這里的路徑建議配置一致鲫骗,如果路徑不一致可能導致啟動的registry無法找到正確的數(shù)據(jù)目錄。

運行registry容器

在B機器上運行registry

docker run \
-d --name=registry \
-v /data/registry-data:/var/lib/registry \
-p 5000:5000 docker.io/registry

驗證使用

在B機器所在 網(wǎng)絡中枕磁,根據(jù)要求修改tag术吝,通過docker pull的方式從該registry中下載鏡像使用排苍。例如:

docker pull 127.0.0.1:5000/centos
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末淘衙,一起剝皮案震驚了整個濱河市传藏,隨后出現(xiàn)的幾起案子毯侦,更是在濱河造成了極大的恐慌,老刑警劉巖侈离,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霍狰,死亡現(xiàn)場離奇詭異蔗坯,居然都是意外死亡,警方通過查閱死者的電腦和手機腿短,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門橘忱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來卸奉,“玉大人,你說我怎么就攤上這事凝颇∨÷裕” “怎么了瘪弓?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵腺怯,是天一觀的道長呛占。 經(jīng)常有香客問我,道長栓票,這世上最難降的妖魔是什么走贪? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任坠狡,我火速辦了婚禮,結果婚禮上婴渡,老公的妹妹穿的比我還像新娘凯亮。我一直安慰自己假消,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布臼予。 她就那樣靜靜地躺著粘拾,像睡著了一般创千。 火紅的嫁衣襯著肌膚如雪签餐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天戒良,我揣著相機與錄音糯崎,去河邊找鬼河泳。 笑死,一個胖子當著我的面吹牛薄霜,可吹牛的內(nèi)容都是我干的惰瓜。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奈揍!你這毒婦竟也來了男翰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎为严,沒想到半個月后肺稀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了黄虱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捻浦。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡朱灿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出跪楞,到底是詐尸還是另有隱情甸祭,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布伪阶,位于F島的核電站,受9級特大地震影響斟湃,放射性物質(zhì)發(fā)生泄漏凝赛。R本人自食惡果不足惜坛缕,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一赚楚、第九天 我趴在偏房一處隱蔽的房頂上張望宠页。 院中可真熱鬧,春花似錦烤宙、人聲如沸躺枕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泄私。三九已至备闲,卻和暖如春捅暴,著一層夾襖步出監(jiān)牢的瞬間蓬痒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留趋惨,地道東北人惦蚊。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓蹦锋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親挤悉。 傳聞我的和親對象是個殘疾皇子装悲,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容