Docker之docker私有仓库搭建(第十七篇)

Docker 已经提供了docker hub仓库,第三方也提供相应的仓库,比如网易,时速云,阿里云等,那为什么还要搭建自己私有的仓库呢?

1)网络有关,有的时候你在的环境可能突然就断网了,但是内部局域网还可以访问,那么你就可以去公司私有的仓库去下载

2)安全性,你自己或者公司的项目,一定不会直接暴露给外面的人看到,所以安全性很重要。

3)便于部署,开发环境,测试环境,正式环境,可以通过私有仓库拉取同一份镜像一步部署,即可完成。

首页要下载registry镜像


docker pull registry

这个没有指定地址,则默认是去docker hub上下载镜像


查看镜像信息

docker history  d1fd7d86a825

可以看到工作目录为/etc/docker/registr

Push上传的文件都会上这个文件,因docekr 计算和存储是分开的所以要永久保存镜像就要把这文件导出来永久保存

然后我们运行registry镜像

docker run -d -p 5000:5000 -v /c/Users/docker_registry:/var/lib/registry registry  


这里我们使用了本地挂载,因为我这里是Windows系统,所以是挂载在dockerLinux系统默认的挂载目录下,当然你也可以修改此目录。

那我们来看一下挂载情况吧

 docker inspect 20b132ab834b310c5

我们已经成功的挂载了。

推送镜像到本地库

接下来我们就要把本地的镜像push到私有仓库中,我们把balance镜像push到私有仓库中

docker push 192.168.99.100:5000/balance

我们看到第一次push错误的时候,是因为缺少tag,当我们tag标签之后,再次push有出现异常信息。因为Docker1.3.X之后,与docker registry交互默认使用的是https,然而此处搭建的私有仓库只提供http服务,所以当与私有仓库交互时就会报上面的错误。为了解决这个问题需要在启动docker server时增加启动参数为默认使用http访问。

解决方案:

/etc/docker/“目录下,创建”daemon.json“文件。在文件中写入:

如果有这个文件就在时面加一条

{ "insecure-registries":["192.168.99.100:5000"] }

IP地址为docker 私有仓库地址

因为我是Windows系统,所以要先连接到docker的运行环境Linux系统

 docker-machine ssh default

然后将当前的docker用户切换到root用户

sudo -i


保存文件


重启docker容器,再次push镜像


已经推送成功了。

验证

我们来验证一下,首先将本地所有的balance相关的镜像都删除


我们看到本地已经没有了balance镜像

docker pull 192.168.99.100:5000/balance

我们看到镜像已经被拉取下来了,然后在运行一下镜像,看看是否能正常访问

 docker run -d -p 8888:8080 fa9b9a86d1ed


项目已经完美运行起来了,棒棒滴!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值