服务器版本 Ubuntu 16.04 LTS。

安装命令:

$ docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry

Registry 服务默认会将镜像保存在/var/lib/registry目录下,上面命令设置保存目录在/opt/registry下,我们可以看下 Registry 容器状态:

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e2b1ffd9072e registry "/entrypoint.sh /e..." 2 hours ago Up About an hour 0.0.0.0:5000->5000/tcp stoic_davinci

接着,我们登录另外一台服务器,将本地的已有的镜像文件推送到私有仓库中,首先,我们需要将镜像的tag标记为要推送到私有仓库,示例:

$ docker tag hwapp:v2 40.125.207.78:5000/hwapp:v3

然后,我们看下镜像文件列表:

$ docker images
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
40.125.207.78:5000/hwapp v3 fe28b19b4410 24 hours ago 1.63GB
hwapp v2 fe28b19b4410 24 hours ago 1.63GB
hwapp v1 8a28e2e870d4 25 hours ago 1.63GB
microsoft/aspnetcore latest 0f2330f1a843 26 hours ago 280MB
microsoft/dotnet latest a7dd4972fc95 6 days ago 1.63GB

最后,我们就可以将40.125.207.78:5000/hwapp:v3镜像文件,推送到私有仓库了:

$ docker push 40.125.207.78:5000/hwapp:v3

可能会出现下面的错误:

$ docker push 40.125.207.78:5000/hwapp:v3
The push refers to a repository [40.125.207.78:5000/hwapp]
Get https://40.125.207.78:5000/v1/_ping: http: server gave HTTP response to HTTPS client

解决方式,在本服务器操作,而不是私有仓库所在服务器(如果已有daemon.json文件,进行修改即可):

$ touch /etc/docker/daemon.json
$ echo '{ "insecure-registries": ["40.125.207.78:5000"] }' > /etc/docker/daemon.json
$ service docker restart

然后,再执行下推送命令就可以了,我们也可以直接构建成要推送私有仓库的镜像,示例:

$ docker build -t 40.125.207.78:5000/hwapp:v4 .

然后,再执行下推送命令:

$ docker push 40.125.207.78:5000/hwapp:v4

推送成功之后,我们可以检查下私有仓库里的镜像文件:

$ curl http://40.125.207.78:5000/v2/_catalog
{"repositories":["hwapp"]}
$ curl http://40.125.207.78:5000/v2/hwapp/tags/list
{"name":"hwapp","tags":["v3","v4"]}

然后,我们就可以拉取私有仓库里的镜像文件了:

$ docker pull 40.125.207.78:5000/hwapp:v4

参考资料:

Ubuntu Docker Registry 搭建私有仓库的更多相关文章

  1. Docker Registry搭建私有仓库

    利用Registry镜像搭建Docker私有仓库遇到了很多坑,说来也是找到的资料都是杂而不精的东西,所以也没少走了弯路,现在回过头看去感觉好多坑还是别人给挖的··· 不过努力的最终结果还是好的,因为找 ...

  2. Docker——Registry搭建私有镜像仓库

    前言 在 Docker 中,当我们执行 docker pull xxx 的时候,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库 ...

  3. Docker:搭建私有仓库(Registry 2.4)

    一.背景 首先,Docker Hub是一个很好的用于管理公共镜像的地方,我们可以在上面找到想要的镜像(Docker Hub的下载量已经达到数亿次):而且我们也可以把自己的镜像推送上去.但是,有的时候, ...

  4. docker之搭建私有仓库

    一.私有仓库 1.防止网络原因:下载慢,访问不到的情况,需要在内网搭建一个私有仓库. 二.仓库镜像下载 [root@node03 ~]# docker pull registry 三.创建私有仓库容器 ...

  5. docker registry-v2 搭建私有仓库

    参考官方文档:https://docs.docker.com/registry/deploying/ 参考 :http://www.tuicool.com/articles/6jEJZj 本例子使用两 ...

  6. docker registry (私有仓库)

    首先要导入registry的镜像文件 1.普通的registry 一条命令创建一个仓库 docker run -d -p 5000:5000 --restart=always --name regis ...

  7. Docker 在搭建私有仓库配置镜像时候报错

    今天搞私有镜像报了个错 ,看了,好久原来是 多了个空格 服务失败,因为控制进程退出时带有错误代码.参见"systemctl状态docker".详细信息参见"服务" ...

  8. docker进阶-搭建私有企业级镜像仓库Harbor

    为什么要搭建私有镜像仓库   对于一个刚刚接触Docker的人来说,官方的Docker hub是用于管理公共镜像.既然官方提供了镜像仓库我们为什么还要去自己搭建私有仓库呢?虽然也可以托管私有镜像.我们 ...

  9. Docker搭建私有仓库

    1,下载仓库镜像. docker pull  registry    //主要用于搭建私有仓库的. 2,将宿主机端口映射到容器中去,容器的5000端口是不能更改的. docker run -d -p ...

随机推荐

  1. 【HTML】ie=edge(转)

    < meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" /> 这是个是 ...

  2. Storm源码阅读之SpoutOutputCollector

    不得不说storm是一个特别棒的实时计算框架.为了对后文理解的方便,先说几个storm中的术语: Topology:拓扑图或者拓扑结构.在storm中它通过消息分组的分式连接Spout和Bolt节点定 ...

  3. python自动化运维:系统基础信息模块

    p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 第一章: 首先介绍下系统性能信息模块:psutil psutil能够轻松实现获取系统 ...

  4. centos中安装mysql

    一.首先输入指令 rpm -qa|grep mysql 检查操作系统中是否已经安装了MySQL 可以通过 yum list | grep mysql 命令来查看yum上提供的mysql数据库可下载的版 ...

  5. ORACLE - 管理重做日志文件

    ORACLE重做日志文件用于在数据库崩溃等情况下用于恢复数据,默认情况下为三个文件redo01.log/redo02.log/redo03.log,文件组循环使用,在录入与更新操作比较多的应用中,日志 ...

  6. 如何查看appache的端口是否被占用

    win + R 快捷键输入 cmd 打开命令行. 输入 netstat -ano 查看端口使用情况 Ctrl + Shift + Esc 打开 windows 任务管理器,依次单击 [查看][ 选择列 ...

  7. Linux下栈溢出导致的core dump

    1 问题产生 前两天在干活的时候,写好的一个daemon程序,一跑就core,连main函数都进不去.从来没见过这阵势的职场新人被吓尿了,幸好不是在生产环境上测试.找来同事帮忙,看了好久也没看出问题, ...

  8. Sybase数据库的连接,JNDI配置,Hibernate配置

    最近的一个项目就是移植老项目的代码,有一个模块用的是Sybase数据库,我表示从来没接触过,更不用说怎么用了.再者这东西都是几乎被淘汰的东西了,而且网上搜到的东西简直了,全是复制粘贴的. 一.使用工具 ...

  9. python编程基础知识—列表(二)

    3操作列表 3.1 遍历整个列表 使用for循环 cars = ['bmw','audi','toyota','Jeep'] for i in cars: print(i) bmw audi toyo ...

  10. easyui 菜单按钮&提示框

    <script type="text/javascript"> function updatePwd(){ alert('修改密码'); } </script&g ...