详解Ubuntu Docker Registry 搭建私有仓库
服务器版本Ubuntu16.04LTS。
安装命令:
$dockerrun-d-v/opt/registry:/var/lib/registry-p5000:5000--restart=always--nameregistryregistry
Registry服务默认会将镜像保存在/var/lib/registry目录下,上面命令设置保存目录在/opt/registry下,我们可以看下Registry容器状态:
$dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES e2b1ffd9072eregistry"/entrypoint.sh/e..."2hoursagoUpAboutanhour0.0.0.0:5000->5000/tcpstoic_davinci
接着,我们登录另外一台服务器,将本地的已有的镜像文件推送到私有仓库中,首先,我们需要将镜像的tag标记为要推送到私有仓库,示例:
$dockertaghwapp:v240.125.207.78:5000/hwapp:v3
然后,我们看下镜像文件列表:
$dockerimages dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE 40.125.207.78:5000/hwappv3fe28b19b441024hoursago1.63GB hwappv2fe28b19b441024hoursago1.63GB hwappv18a28e2e870d425hoursago1.63GB microsoft/aspnetcorelatest0f2330f1a84326hoursago280MB microsoft/dotnetlatesta7dd4972fc956daysago1.63GB
最后,我们就可以将40.125.207.78:5000/hwapp:v3镜像文件,推送到私有仓库了:
$dockerpush40.125.207.78:5000/hwapp:v3
可能会出现下面的错误:
$dockerpush40.125.207.78:5000/hwapp:v3
Thepushreferstoarepository[40.125.207.78:5000/hwapp]
Gethttps://40.125.207.78:5000/v1/_ping:http:servergaveHTTPresponsetoHTTPSclient
解决方式,在本服务器操作,而不是私有仓库所在服务器(如果已有daemon.json文件,进行修改即可):
$touch/etc/docker/daemon.json $echo'{"insecure-registries":["40.125.207.78:5000"]}'>/etc/docker/daemon.json $servicedockerrestart
然后,再执行下推送命令就可以了,我们也可以直接构建成要推送私有仓库的镜像,示例:
$dockerbuild-t40.125.207.78:5000/hwapp:v4.
然后,再执行下推送命令:
$dockerpush40.125.207.78:5000/hwapp:v4
推送成功之后,我们可以检查下私有仓库里的镜像文件:
$curlhttp://40.125.207.78:5000/v2/_catalog {"repositories":["hwapp"]} $curlhttp://40.125.207.78:5000/v2/hwapp/tags/list {"name":"hwapp","tags":["v3","v4"]}
然后,我们就可以拉取私有仓库里的镜像文件了:
$dockerpull40.125.207.78:5000/hwapp:v4
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。