DockerHub 官方仓库,有的时候,我们公司内部开发,一些镜像文件,受限于网络,而且公司内部自己的项目也不希望透露出去,就像你用git一样,如果你不想交钱又不想用gitHub的公共代码管理,你就得搭建一个属于自己的git仓库,比如gitLab
那么docker的镜像存放仓库,我们同样的可以搭建出一个私有的镜像仓库,可以放在公司的内网。
第一步 :下载registry镜像文件
docker pull registry
第二部:运行这个镜像
sudo docker run -d -v /home/hzq/registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name registry registry:latest
命令详细解释:
-v /home/hzq/registry:/var/lib/registry
默认情况下,会将仓库存放于容器内的/var/lib/registry目录下,指定本地目录挂载到容器。-p 5000:5000
端口映射--restart=always1
在容器退出时总是重启容器,主要应用在生产环境--privileged=true
在CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报权限错误OSError: [Errno 13] Permission denied: ‘/tmp/registry/repositories/liibrary’
)或者(Received unexpected HTTP status: 500 Internal Server Error
)错误--name registry
指定容器的名称扫描二维码关注公众号,回复: 2471808 查看本文章
第四部:测试push镜像文件
4.1:给你的仓库中的镜像,打个标签
比如我要对图中的我的镜像列表里的tomcat打上一个tag,然后我准备上传我的私有镜像仓库里
执行命令:docker tag [你的镜像id] locahost:5000/tomcat
其实这一窜: locahost:5000/tomcat 就是你要上传的镜像文件在你的私有镜像里的镜像名字
4.2:push你的镜像
docker push localhost:5000/tomca
4.3 查看仓库的私有镜像
执行命令 curl http://locahost:5000/v2/_catalog
可以很明显的看到我们的镜像进去了,那个 tomcat ,我还漏了一个 字母 t