(三):docker registry2 搭建

簡介

docker hub使用hub.docker.com作為公共倉庫,與之相對應全谤,我們可以通過registry來搭建自己的私有倉庫,提升鏡像倉庫的訪問速度。

1.環(huán)境描述

[root@localhost docker.registry:5000]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.3 (Maipo)

2.搭建方式

  1. 無需驗證的鏡像中心
  2. https鑒權(quán)的鏡像中心
  3. 用戶名密碼登錄的鏡像中心

3.搭建步驟:

3.1 無需驗證的鏡像中心

拉取鏡像:

docker pull registry:2.6.2

不需要驗證的啟動:

docker run -d -p 5000:5000  --name registry2-noauth --restart=always  -v /usr/local/docker/registry/auth/:/auth/  -v /usr/local/docker/registry/:/var/lib/registry/ registry:2.6.2
--restart=always docker重啟容器自啟動

客戶端配置免https

  1. 修改 /etc/docker/daemon.json
[root@localhost ~]# echo '{ "insecure-registries":["172.16.1.146:5000"] }' > /etc/docker/daemon.json
[root@localhost ~]# cat /etc/docker/daemon.json
{ "insecure-registries":["172.16.1.146:5000"] }
  1. 重載docker
sudo systemctl daemon-reload
sudo systemctl restart docker

如果不配置颓帝,客戶端使用時候會報錯


使用:

  • tag鏡像并上傳

使用docker tag將一個鏡像標記,格式如下:
172.16.1.146:5000/registry:2.6.2躬拢,其中172.16.1.146是本地倉庫地址躲履,5000為倉庫端口,registry是鏡像標簽, 2.6.2是版本號
這里的172.16.1.146可以是本地的ip也可以是域名聊闯,如:www.xxx.net

[root@gitlab conf]# docker tag docker.io/registry:2.6.2  172.16.1.146:5000/registry:2.6.2

當標記完成后工猜,本地的images中會存放一個和標記名稱一樣的鏡像,我們將這個鏡像上傳即可

  • 上傳鏡像到鏡像中心
[root@localhost local]# docker push 172.16.1.146:5000/registry:2.6.2
The push refers to a repository [172.16.1.146:5000/registry]
9113493eaae1: Pushed 
621c2399d41a: Pushed 
59e80739ed3f: Pushed 
febf19f93653: Pushed 
e53f74215d12: Pushed 
2.6.2: digest: sha256:feb40d14cd33e646b9985e2d6754ed66616fedb840226c4d917ef53d616dcd6c size: 1364
  • 判斷鏡像是否存在

api

  • 列出所有存儲庫
GET http://127.0.0.1:5000/v2/_catalog
{
  ● repositories: 
[
      ○ "mongo",
      ○ "registry"
]
}
  • 列出鏡像所有tags
GET http://127.0.0.1:5000/v2/registry/tags/list
{
  ● name: "registry",
  ● tags: 
[
      ○ "2.6.2",
      ○ "2.6.3"
]
}

registry是鏡像的名稱菱蔬,可以看出來鏡像已經(jīng)上傳成功篷帅。

  • 從私有鏡像中心拉取鏡像
[root@localhost local]# docker pull 172.16.1.146:5000/registry:2.6.2
Trying to pull repository 172.16.1.146:5000/registry ... 
2.6.2: Pulling from 172.16.1.146:5000/registry
Digest: sha256:feb40d14cd33e646b9985e2d6754ed66616fedb840226c4d917ef53d616dcd6c
Status: Downloaded newer image for 172.16.1.146:5000/registry:2.6.2

3.2 https鑒權(quán)的鏡像中心:

注意:客戶端不需要配置免https
  • 創(chuàng)建key
mkdir -p /usr/local/docker/registry/certs/
cd /usr/local/docker/registry/certs/
openssl genrsa -out docker.registry.key 2048
  • 創(chuàng)建crt
openssl req -newkey rsa:4096 -nodes -sha256 -keyout docker.registry.key -x509 -days 365 -out docker.registry.crt
部分信息填寫示例如下:
[root@localhost certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout docker.registry.key -x509 -days 365 -out docker.registry.crt
Generating a 4096 bit RSA private key
...........................................................................................++
.............................++
writing new private key to 'docker.registry.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:86
State or Province Name (full name) []:Anhui
Locality Name (eg, city) [Default City]:Hefei
Organization Name (eg, company) [Default Company Ltd]:xxxx
Organizational Unit Name (eg, section) []:xxxx
Common Name (eg, your name or your server's hostname) []:docker.registry
Email Address []:xxx@xxx.com
  • 查看證書失效時間。
[root@localhost docker.registry:5000]# openssl x509 -in docker.registry.crt -noout -dates
notBefore=Jul  5 06:58:36 2018 GMT
notAfter=Jul  5 06:58:36 2019 GMT
  • 加入docker信任

由于是自簽名證書,默認是不受Docker信任的,故而需要將證書添加到Docker 的根證書中,Docker在CentOS 7中,證書存放路徑是 :

mkdir -p /etc/docker/certs.d/docker.registry:5000
cp /usr/local/docker/registry/certs/docker.registry.crt /etc/docker/certs.d/docker.registry:5000/
docker.registry:5000為實際訪問域名和端口
  • 啟動
docker run -d -p 5000:5000 --name registry2-sslauth    -v /usr/local/docker/registry/certs/:/certs/  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/docker.registry.crt  -e REGISTRY_HTTP_TLS_KEY=/certs/docker.registry.key -v /usr/local/docker/registry/:/var/lib/registry/ registry:2.6.2
  • 驗證:
docker tag docker.io/registry:2.6.2  docker.registry:5000/registry:2.6.2
docker push docker.registry:5000/registry:2.6.2
docker rmi  docker.registry:5000/registry:2.6.2
docker pull docker.registry:5000/registry:2.6.2
其他類似拴泌,api操作魏身,需要使用https。

3.3 用戶名密碼登錄的鏡像中心

  • 生成用戶名:密碼

mkdir -p /usr/local/docker/registry/auth
docker run --entrypoint htpasswd registry:2.6.2 -Bbn admin ******  >> /usr/local/docker/registry/auth/htpasswd

上面這條命令是為admin用戶名生成密碼為******的一條用戶信息蚪腐,存在/usr/local/docker/registry/auth/htpasswd文件里面箭昵,文件中存的密碼是被加密過的。

  • 啟動:

docker run -d -p 5000:5000 --name registry2-httpauth  --restart=always  -v /usr/local/docker/registry/auth/:/auth/  -e "REGISTRY_AUTH=htpasswd"  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v /usr/local/docker/registry/:/var/lib/registry/ registry:2.6.2
  • http登錄:
docker login 172.16.1.146:5000
同樣需要配置客戶端免https回季,其他類似家制,api操作,需要輸入用戶名泡一、密碼颤殴。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鼻忠,隨后出現(xiàn)的幾起案子涵但,更是在濱河造成了極大的恐慌,老刑警劉巖帖蔓,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矮瘟,死亡現(xiàn)場離奇詭異,居然都是意外死亡塑娇,警方通過查閱死者的電腦和手機芥永,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钝吮,“玉大人埋涧,你說我怎么就攤上這事板辽。” “怎么了棘催?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵劲弦,是天一觀的道長。 經(jīng)常有香客問我醇坝,道長邑跪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任呼猪,我火速辦了婚禮画畅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宋距。我一直安慰自己轴踱,他們只是感情好,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布谚赎。 她就那樣靜靜地躺著淫僻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪壶唤。 梳的紋絲不亂的頭發(fā)上雳灵,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天,我揣著相機與錄音闸盔,去河邊找鬼悯辙。 笑死,一個胖子當著我的面吹牛迎吵,可吹牛的內(nèi)容都是我干的躲撰。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼钓觉,長吁一口氣:“原來是場噩夢啊……” “哼茴肥!你這毒婦竟也來了坚踩?” 一聲冷哼從身側(cè)響起荡灾,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瞬铸,沒想到半個月后批幌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡嗓节,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年荧缘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拦宣。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡截粗,死狀恐怖信姓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情绸罗,我是刑警寧澤意推,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站珊蟀,受9級特大地震影響菊值,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜育灸,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一腻窒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧磅崭,春花似錦儿子、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至恩够,卻和暖如春卒落,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蜂桶。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工儡毕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扑媚。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓腰湾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親疆股。 傳聞我的和親對象是個殘疾皇子费坊,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361

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