Ubuntu Docker Registry 搭建私有仓库

简介:

服务器版本 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

本文转自田园里的蟋蟀博客园博客,原文链接:http://www.cnblogs.com/xishuai/p/ubuntu-docker-registry.html,如需转载请自行联系原作者

相关文章
|
消息中间件 Java 开发者
【颠覆想象】Spring Boot重构未来:解耦与隔离,打造坚不可摧的微服务帝国!
【8月更文挑战第29天】本文通过构建电子商务平台的具体案例,深入探讨了如何利用 Spring Boot 实现服务间的解耦与隔离。文章详细介绍了依赖注入、模块化设计及异步通信等关键技术,并提供了具体代码示例。通过依赖注入,对象间耦合得以降低;模块化设计使各功能域独立,降低系统复杂度;异步通信则利用消息队列提升系统吞吐量与响应速度。这些方法不仅优化了系统架构,还加快了开发进程。
310 0
|
10月前
|
JSON Shell 数据格式
初识dockerFile之RUN和WORKDIR
通过本文的介绍,我们详细讲解了Dockerfile中的RUN和WORKDIR指令。RUN指令用于执行命令,生成新的镜像层;WORKDIR指令用于设置工作目录,简化路径管理。合理使用这两个指令,可以提高Dockerfile的可读性和效率。
517 109
|
10月前
|
安全 C语言 C++
彻底摘明白 C++ 的动态内存分配原理
大家好,我是V哥。C++的动态内存分配允许程序在运行时请求和释放内存,主要通过`new`/`delete`(用于对象)及`malloc`/`calloc`/`realloc`/`free`(继承自C语言)实现。`new`分配并初始化对象内存,`delete`释放并调用析构函数;而`malloc`等函数仅处理裸内存,不涉及构造与析构。掌握这些可有效管理内存,避免泄漏和悬空指针问题。智能指针如`std::unique_ptr`和`std::shared_ptr`能自动管理内存,确保异常安全。关注威哥爱编程,了解更多全栈开发技巧。 先赞再看后评论,腰缠万贯财进门。
450 0
|
传感器 供应链 安全
大数据技术的应用场景
大数据技术的应用场景
|
前端开发 JavaScript Java
前后端分离|基于Springboot+Vue校园闲置物品交易系统设计与实现
前后端分离|基于Springboot+Vue校园闲置物品交易系统设计与实现
259 0
前后端分离|基于Springboot+Vue校园闲置物品交易系统设计与实现
|
人工智能 机器人 测试技术
【windows配置】windows11家庭版添加本地安全策略(亲测有效)
【windows配置】windows11家庭版添加本地安全策略(亲测有效)
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的智能社区服务小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的智能社区服务小程序的详细设计和实现
279 0
|
缓存 负载均衡 Dubbo
从源码全面解析 dubbo 消费端服务调用的来龙去脉
从源码全面解析 dubbo 消费端服务调用的来龙去脉
|
人工智能 数据中心 Anolis
NVIDIA AI 新网络助力龙蜥提升网络通信速率
面向新 AI 数据中心,网络如何改进?
|
SQL 关系型数据库 MySQL
边锋 x AnalyticDB MySQL:打造一站式游戏数据分析平台
杭州边锋网络技术有限公司是国内领先的休闲游戏开发商、运营商、发行商。20余年来,边锋网络一直是中国棋牌游戏的开拓者和变革者。  边锋网络市场覆盖20余个省份,注册用户过亿,月活跃用户上千万,是国家级重点软件企业(一类)。公司大数据分析系统"反应堆"目前支持着包括雀神广东麻将、边锋斗地主、蜀山四川麻将、功夫川麻等10余款休闲游戏产品;

热门文章

最新文章