Happy3w

Docker-私有仓库

2017.01.18
为什么要有私有仓库? 1.为了速度。默认的仓库是https://hub.docker.com/,远隔千山万水,还有其他原因,导致很慢,私有仓库可以设置为代理,本地网络中的仓库,速度完全取决于自己的路由器能力。 2.为了安全。对于有安全需求的人来说,自己的数据在网络上传输总是存在安全隐患。不走外网才是王道。 就为了速度来一个仓库也值得 私有仓库有好多,建议使用nexus,理由是:1.Free;2.功能全,除了Docker仓库,也是maven仓库,npm仓库... 过程如下 1.下载安装包 https://www.sonatype.com/download-oss-sonatype 根据自己的系统选择对应下载链接,我使用的是nexus-3.2.0-01-unix.tar.gz 2.安装依赖内容Java 1.8以上版本,这里不讲 3.解压缩在本地目录 4.进入nexus-3.2.0-01-unix/nexus-3.2.0-01目录,执行./bin/nexus start,既可以启动nexus 此时已经打开本地的8081端口,在浏览器录入http://localhost:8081,使用admin密码admin123登录可以开始配置nexus 5.选择配置(界面上的齿轮)->点击Repositories->点击Create repositoy->选择docker(hosted)->录入Name,比如docker-host->录入http的端口号,比如8088->点击最下方的create repository按钮。此时我们在本地建立了一个可以存储image的repository 6.使用这个repository。在docker中配置Insecure registries,将{本机地址}:8088添加进去。 MAC上可以直接点击docker图标配置;Linux上需要配置/etc/sysconfig/docker,增加INSECURE_REGISTRY='--insecure-registry {本机地址}:8088' 之后保存配置重启docker服务。Mac上直接通过图标重启;Linux上执行命令service docker restart 重启docker后执行命令docker login {本机地址}:8088 -u admin -p admin123 7.现在可以将Image zhangsan/superapp推送到这个仓库了。执行如下命令即可 docker tag zhangsan/superapp {本机地址}:8088/zhangsan/superapp docker push {本机地址}:8088/zhangsan/superapp 8.其他获取Image的需要执行第6步,之后执行docker pull {本机地址}:8088/zhangsan/superapp 私有仓库除了可以保存自己的Image,还能代理其他服务器,过程 1.选择配置(界面上的齿轮)->点击Repositories->点击Create repositoy->选择docker(proxy)->录入Name,比如docker-hub->录入http的端口号,比如8089->录入Remote storage,比如https://registry-1.docker.io//->点击View certificate->点击Add certificate to truststore->选择Docker Index为use Docker Hub->最下方的create repository按钮。此时创建了我们的代理 2.参照安装流程中第6步,增加8089端口到Insecure registries. 执行docker pull {本机地址}:8089/hello-world:latest既可以从服务器获取镜像,第一次获取比较慢,以后就非常快了 代理多个proxy和host的时候,可以使用docker(group)组织在一起使用。组只能pull不能push 各类型仓库含义 hosted:本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。 proxy:代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。 group:仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。 上一篇  下一篇