docker倉庫

倉庫

倉庫(Repository)是集中存放鏡像的地方。一個容易與之混淆的概念是注冊服務器(Registry)。實際上注冊服務器是存放倉庫的具體服務器,每個服務器上可以有多個倉庫,而每個倉庫下面有多個鏡像。由此可以理解為倉庫是一個具體的項目或目錄。例如對于倉庫地址dl.dockerpool.com/ubuntu來說,dl.dockerpool.com是注冊服務器地址,ubuntu是倉庫名。

倉庫又分為公共倉庫和私有倉庫,本章介紹如何使用DockerHub官方倉庫進行登錄、下載等操作,以及使用DockerPool社區(qū)提供的倉庫下載鏡像,最后還介紹了創(chuàng)建和使用私有倉庫。

Docker Hub

目前docker官方維護了一個公共倉庫https://hub.docker.com,大部分需求都可以通過在Docker Hub中直接下載鏡像來實現(xiàn)。

登錄

可以通過docker login命令來輸入用戶名、密碼和郵箱來完成注冊和登錄,注冊成功后,本地用戶目錄的.dockercfg中將保存用戶的認證信息。

docker login
基本操作

用戶無需登錄即可通過docker search 命令來查找官方倉庫中的鏡像,并通過docker pull命令來將他下載至本地。

例如以centos為關(guān)鍵詞進行搜索:
docker search centos

search centos

根據(jù)是否為官方提供,可將這些鏡像資源分為兩類。一種是類似centos這樣的基礎(chǔ)鏡像,稱為基礎(chǔ)或根鏡像。這些鏡像由Docker公司創(chuàng)建、驗證、支持和提供。這樣的鏡像往往使用單個單詞作為名字。

還有一種類型,比如ansible/centos7-ansible鏡像,它是由DockerHub的用戶ansible創(chuàng)建并維護的,帶有用戶名稱為前綴,表明是某用戶的某倉庫。

另外,在查找的時候通過-s N參數(shù)可以指定僅顯示評價為N星以上的鏡像。

自動創(chuàng)建

自動創(chuàng)建(Automated Builds)功能對于需要經(jīng)常升級鏡像內(nèi)程序來說十分方便,有時候,用戶創(chuàng)建了鏡像,安裝了某軟件,運行了自己的代碼工程等。如果軟件發(fā)布新版本則需要手動更新鏡像。

而自動創(chuàng)建功能使得用戶通過Docker Hub指定跟蹤一個目標網(wǎng)站(目前支持GitHub或BitBucket)上的項目,一旦發(fā)現(xiàn)新的提交,則自動執(zhí)行創(chuàng)建。

包括如下步驟:

  • 創(chuàng)建并登陸Docker Hub、目標網(wǎng)站(GitHub),在目標網(wǎng)站中連接賬戶到Docker Hub
  • 在Docker Hub中配置一個自動創(chuàng)建
  • 選取一個目標網(wǎng)站(GitHub)中的項目(需要含Dockerfile)和分支
  • 指定Dockerfile的位置,并提交創(chuàng)建
    之后,可以在Docker Hub的“自動創(chuàng)建”頁面中跟蹤每次創(chuàng)建的狀態(tài)。
創(chuàng)建和使用私有倉庫
使用registry鏡像創(chuàng)建私有倉庫

安裝Docker后,可以通過官方提供的registry鏡像來簡單搭建一套本地私有倉庫環(huán)境:
docker run -d -p 5000:5000 registry

這將自動下載并啟動一個registry容器,創(chuàng)建本地的私有倉庫服務。默認情況下,會將倉庫創(chuàng)建在容器的/tep/registry目錄下,可以通過-v參數(shù)來將鏡像文件存放在本地的指定路徑上

例如下面的例子,將上傳的鏡像放到/opt/data/registry目錄:
docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
此時,在本地將啟動一個私有倉庫服務,監(jiān)聽端口為5000。

管理私有倉庫鏡像

首先搭建私有倉庫,地址為:10.0.2.2:5000,然后在虛擬機(ubuntu14.04)里測試上傳和下載鏡像。使用docker tag命令將這個鏡像標記為10.0.2.2/test(格式為docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME:[:TAG]):
docker tag ubuntu:14.04 10.0.2.2:5000

使用docker push上傳標記的鏡像:
docker push 10.0.2.2:5000/test

使用curl查看倉庫10.0.2.2:5000中的鏡像:
curl http://10.0.2.2:5000/v1/search
若看到{"description":"","name":"library/test"},表明鏡像已經(jīng)上傳成功了?,F(xiàn)在可以從任意一臺能訪問10.0.2.2地址的機器去下載這個鏡像了:
docker pull 10.0.2.2:5000/test

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容