官方提供的私有倉庫docker registry用法html
https://yeasy.gitbooks.io/docker_practice/repository/registry.htmlnode
docker pull registrygit
私有倉庫會被建立在容器的/var/lib/registry下,所以經過-v參數將鏡像文件存儲到本地的/opt/data/registry下 端口映射容器中的5000端口到宿主機的5000端口web
docker run -d -p 服務器端口:容器端口 -v 服務器目錄:私有倉庫容器目錄docker
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registryjson
檢查啓動的registry容器vim
docker pscentos
測試鏈接容器api
# telnet 服務器IP 端口(根據運行的端口)瀏覽器
telnet 10.0.0.209 5000
直接用瀏覽器訪問
http://ip+端口(5000)能夠測試/v2/_catalog
頁面會有以下顯示
以docker registry的地址端口開頭
# 語法: docker tag 原鏡像名 服務器IP:5000/鏡像名
如:
# docker tag centos 10.0.0.209:5000/mycentos
這個時候咱們會遇到一個https限制推送鏡像的問題
經過 Docker 的配置選項來取消這個限制,這裏必須寫正確json數據
添加一行配置
下面的ip爲運行私有倉庫的ip,端口5000
[root@node209 ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://t7h7r7wr.mirror.aliyuncs.com"],
"insecure-registries":["10.0.0.209:5000"]
}
寫入到[Service]配置塊中,加載此配置文件
vim /lib/systemd/system/docker.service
添加一行配置
EnvironmentFile=-/etc/docker/daemon.json
結果以下截圖:
從新加載docker
systemctl daemon-reload
重啓docker
systemctl restart docker
重啓倉庫容器
# docker ps -a # 找到registry 鏡像所對應的容器ID
# dokcer start 容器ID
# docker push 10.0.0.209:5000/mycentos
因爲docker registry沒有web界面,可是提供了API數據
要想查看已經上傳的鏡像, 經過如下連接訪問便可查看:
官網教程:https://docs.docker.com/registry/spec/api/#listing-repositories
注:10.0.0.209爲部署倉庫的服務器IP
法一:
curl http://10.0.0.209:5000/v2/_catalog
法二:
瀏覽器訪問http://10.0.0.209.10:5000/v2/_catalog
法一:截圖
法二:截圖
均可得上傳鏡像到私有倉庫成功
#docker rmi 10.0.0.209:5000/mycentos #刪除剛纔上傳的本地鏡像
#docker pull 10.0.0.209:5000/mycentos #從私有倉庫pull下載鏡像
#docker images # 查看鏡像