Docker基础-13-如何发布一个镜像到私有的docker仓库

       本篇来介绍如何搭建自己的Docker registry,用来存储和分发自己私人的镜像文件。前面一篇使用docker push默认是发布镜像到hub.docker.com这个公有的镜像站点,这篇主要介绍私有镜像站点的在本地的搭建过程。

 

准备第二个Linux虚拟机

前面我们只准备了一台linux虚拟机用来练习和学习Docker,现在重新克隆一台虚拟机,这样新的虚拟机就不再需要安装docker环境了。克隆完了,两台虚拟机都开机,保证IP地址是不一样的就行。例如,我这里有一台192.168.24.128是我用来学习docker的虚拟机,第二台IP是192.168.24.129是我克隆出来准备做私有的registry服务。

 

拉取docker registry镜像

由于我是克隆出来机器,里面安装了docker,我们先启动docker服务,然后使用docKer pull registry拉取一个镜像到本地。

看看这个镜像多大

为了测试,我这台机器只留registry功能,我利用docker image rm 或者docker rmi命令删除其他不相干的镜像。

启动registry

启动registry实际上就是启动一个容器,这个registry其实和hub.docker.com是一样的功能,只不过这个私有的registry是供给公司内部使用,不对外访问罢了。使用下面的命令就启动了registry服务(运行在一个容器中)。

上面可以看到两个端口都是5000,简单说一下,一个是linux虚拟机也就是0.0.0.0:5000,这个5000是这个虚拟机本身的端口,第二个是5000是这个registry容器里的端口是5000. 以后再学习docker网络这块要学习这些。我们要明白,知道了一个机器IP和程序的端口号,就能在网络里访问这个程序的服务。

 

验证两台机器网络是否连接

我们有两台linux机器,第一个要验证虚拟机24.128是否能ping 24.129

接下来验证registry这台机器提供的5000端口是否可用。如果没有安装telnet组件,可以使用yum install –y telnet来安装。

如果出现这个,说明24.129这台机器提供的registry服务是可用的。

 

发布镜像到私有registry

这里,还是使用我们在原来24.128这台机器上的hello-docker的例子来build 一个image,先通过docker file build出来,然后使用push命令

这次使用docker build命令和之前不一样,是不是,之前在tag这里填写的参数是我的hub.docker.com的用户ID, 现在我们搭建了私有的镜像仓库,这个tag就要写成192.168.24.129:500了,这个要注意下。

接下来使用docker push 来看看效果

这个报错什么意思呢,字面意思是一个HTTP协议的服务器给了一个HTTP协议响应到一台HTTPS协议的客户端,意思是服务器是HTTP协议,客户端是HTTPS协议,这个是被任务我们私有的registry是不可信任的。接下来还需要一个步骤来解决这个报错。

 

第一在目录 /etc/docker下编辑一个daemon.json文件

使用vi或者vim(管理员权限)打开,打开内容是如下,这个内容是我们前面介绍如何改成中国地区的docker镜像站点的配置。

我们修改内容如下

{
    "registry-mirrors": ["https://registry.docker-cn.com"],
    "insecure-registries":["192.168.24.129:5000"]
}

保存退出,然后执行再编辑一个文件,让这个修改永久有效。

我们编辑vim /lib/systemd/system/docker.service这个文件,添加一下红圈这一行,让每次docker服务重启之后都去加载/etc/docker/daemon.json文件

保存退出,执行sudo service docker restart命令,然后执行docker push试一下

看到Pushed,说明这个镜像发布成功,由于没有UI界面,我们怎么样去判断确实发布到了24.129这台机器上呢?

 

打开浏览器,输入地址https://docs.docker.com/registry/spec/api/ ,打开docker registry 的API文档页面。当前页面搜索Listing Image Tags,查询到这个API。

这里参数name就是我们的image的名称192.168.24.129:5000/hello-docker中的hello-docker,

下面我们在浏览器发送这个请求试试,看看什么结果。

如果要查询全部pushed的镜像,我们可以输入这个API。

关于介绍如何搭建本地私人的docker registry服务就介绍到这里。这篇,如果你们公司需要你研究docker,并要求使用docker,你肯定要去搭建一个私有的docker registry服务。如果要管理registry,那么就必要去学习registry的一些常用API。作为docker基础,学习到如何搭建服务就可以,可以跳过学习这些API文档。

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值