这篇文档的背景是猫猫在尝试编写基于Photon OS与Docker、Mesos、Kubernetes等容器相关技术文档的配套环境时遇到的一个问题:GFW,由于Docker Hub位于国外,在国内想要快速访问或者说想要稳定访问Docker Hub,真是太不容易了,每次都在这个事情上等待很久。因此,本猫就萌生了是否应该做一个Local的Docker Registry,通过Pull,将常规的Docker Hub里的东西抓到本地,这样,其它的Photon OS想要Docker Image时,就可以直接从这台Local Docker Registry获取,不用次次跑到又慢、又不稳定的Docker Hub了。而且,这个Private Docker Registry还可以作为Image的Push对象,允许将Images Push到里面;
首先自然是需要准备一个机器用于承担这个Private Docker Registry的工作。可以选择用一个CentOS 6.5+的Linux​‍,也可以选择用VMware Photon OS,关于Photon OS的部署,请参考[url=](图文)如何在VMware Fusion上导入Photon OS[/url]相对简单,VMware提供了OVA了,当然了,即使是以ISO的模式部署也不难。准备好之后,就可以开始后续的事情了;
1、首先登录到准备好的Docker Registry Photon主机,将它的Docker版本升级一下,执行命令如下: #rpm –rebuilddb 确认能联网之后,接着参考[url=](图文)如何为Photon OS升级内置的Docker Engine版本到1.9.1[/url]这篇文档进行升级;
备注:Photon OS里没有yum,只有一个精简版的yum,也就是tdnf,因此,只能用tdnf;
2、升级完成后,执行如下命令重新加载docker的daemon: #systemctl daemon-reload 接着执行如下命令重启docker服务: #systemctl restart docker
如下图所示:
执行命令“docker -v”,可以看到具体的Docker版本号,如下图所示:
3、之后,执行如下命令准备安装Docker Registry: #docker run –d –p 5000:5000 --restart=always–name registry registry:2 如下图所示的系统输出:
4、完成对于registry的Pull之后,去到其它的Photon节点,执行命令systemctl stop docker。然后,执行如下命令将这台机的Docker Daemon运行在insecure模式下: #docker –d --insecure-registry photon-master.vmanager.cn:5000& 如下图所示:
5、之后,就可以尝试测试Private Docker Registry了,执行如下命令从Public Docker Registry安装nginx,命令如下: #docker pull vmwarecna/nginx 如下图所示:
6、然后,执行如下命令将对应的Container应用打上Local标签,命令如下: #docker tag vmwarecna/nginx photon-master.vmanager.cn:5000/myimage 如下图所示:
7、然后,执行如下命令将Image push到Local Registry那边: #docker push photon-master.vmanager.cn:5000/myimage 如下图所示:
8、之后,找台新的Photon OS执行如下命令从Private DockerRegistry安装Container应用: #docker run –d –p 80:80 photon-master.vmanager.cn:5000/myimage 如下图所示:
留意下速度,看看是不是飞一般的感觉;
最后,轻松可以登录看看这个机器安装的nginx了。
转自:虚拟人论坛
|