搭建docker registry私有倉庫并配置用戶認(rèn)證
在工作過程中,有時(shí)候會(huì)碰到需要把docker鏡像放到另外一臺(tái)機(jī)器上運(yùn)行蔽午,提交到公網(wǎng)的docker hub太慢,如果每次導(dǎo)出文件傳輸再導(dǎo)入又太麻煩酬蹋,還不方便進(jìn)行版本控制及老、自動(dòng)部署等操作抽莱。于是docker官方提供了一套簡(jiǎn)單的實(shí)現(xiàn)方案,就是Registry鏡像骄恶。
話不多說食铐,現(xiàn)在開始一步一步搭建私有docker倉庫。
服務(wù)器IP:192.168.1.33
-
首先拉取鏡像僧鲁,執(zhí)行一下命令:
docker pull registry
-
為了讓數(shù)據(jù)持久化避免丟失虐呻,我們可以創(chuàng)建存儲(chǔ)卷或者直接映射到宿主機(jī)目錄。
docker create volume registry_data
docker run -d --restart always --name registry -p 5000:5000 -v registry_data:/var/lib/registry registry
或者映射到宿主機(jī):
docker run -d --restart always --name registry -p 5000:5000 -v /data/registry:/var/lib/registry registry
查看私有倉庫:
curl -XGET 127.0.0.1:5000/v2/_catalog
查看鏡像版本列表
curl -XGET 127.0.0.1:5000/v2/image_name/tags/list
-
push鏡像到私有倉庫
docker tag myapp 192.168.1.33:5000/myapp
docker push 192.168.1.33:5000/myapp
-
其他機(jī)器配置連接私有倉庫
每臺(tái)機(jī)器 docker 私有倉庫配置vi /etc/docker/daemon.json寫入以下內(nèi)容:
{
"insecure-registries": [
"172.16.77.71:5000"
]
}
然后重啟docker
-
設(shè)置私有倉庫的用戶認(rèn)證
私有倉庫搭建以后其他所有客戶端均可以push寞秃、pull斟叼, docker官方提供認(rèn)證方法對(duì)docker倉庫進(jìn)行權(quán)限保護(hù)
刪除原啟動(dòng)的docker容器
docker stop docker-hub
docker rm docker-hub
創(chuàng)建保存賬號(hào)密碼的文件
mkdir /opt/data/auth
docker run --entrypoint htpasswd registry -Bbn username userpasswd > auth/htpasswd
重新啟動(dòng)容器
docker run -d -p 5000:5000 --restart=always --name registry \
-v registry_data:/var/lib/registry \
-v /opt/data/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
registry
現(xiàn)在客戶端再pull、push會(huì)提示報(bào)錯(cuò)春寿,無法提交朗涩。需要登錄私有倉庫
登錄:
docker login -u username -p userpasswd 192.168.1.33:5000
退出:
docker logout 192.168.1.33:5000
至此,一個(gè)帶認(rèn)證的docker鏡像倉庫搭建完成了绑改。
微信谢床、知乎、簡(jiǎn)書厘线、CSDN等平臺(tái)搜索“道聽真說”萤悴,點(diǎn)點(diǎn)關(guān)注不迷路!
如果本文對(duì)你有一點(diǎn)點(diǎn)幫助皆的,請(qǐng)點(diǎn)個(gè)贊支持一下,謝謝啦??
近期更新文章:
為什么我的數(shù)據(jù)庫那么慢蹋盆,教你提升10倍MySQL性能