第 3 章 镜像 - 020 - 搭建本地 Registry

Docker Hub 虽然非常方便,但还是有些限制,比如:

  1. 需要 internet 连接,而且下载和上传速度慢。
  2. 上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 repository,但不是免费的。
  3. 安全原因很多组织不允许将镜像放到外网。

解决方案就是搭建本地的 Registry。

在 Docker Hub 上也有官方的镜像 registry。我们可以在 Docker 中运行自己的 registry。

启动 registry 容器

 1 [email protected]:~# docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2
 2 Unable to find image ‘registry:2‘ locally
 3 2: Pulling from library/registry
 4 cd784148e348: Pull complete
 5 0ecb9b11388e: Pull complete
 6 918b3ddb9613: Pull complete
 7 5aa847785533: Pull complete
 8 adee6f546269: Pull complete
 9 Digest: sha256:979960c6c4e885f9c55f19c85ed33ebca2341a56998a82eecb3529ff0c7c3a7e
10 Status: Downloaded newer image for registry:2
11 f27eb6348026862f5744a916f67c4079d36c54fd46091d27a6c5d916f00ae5bc
  • 使用的镜像是 registry:2。
  • -d 是后台启动容器。
  • -p 将容器的 5000 端口映射到 Host 的 5000 端口。5000 是 registry 服务端口。
  • -v 将容器 /var/lib/registry 目录映射到 Host 的 /myregistry,用于存放镜像数据。

通过 docker tag 重命名镜像,使之与 registry 匹配

1 [email protected]:~# docker tag gsophy/docker.edu:v1 localhost:5000/gsophy/docker.edu:v1  #在镜像的前面加上了运行 registry 的主机名称和端口
2 [email protected]:~#
3 [email protected]:~# docker images localhost:5000/gsophy/docker.edu
4 REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
5 localhost:5000/gsophy/docker.edu   v1                  ef1dc54703e2        2 weeks ago         132MB
  • 镜像名称由 repository 和 tag 两部分组成。
  • 而 repository 的完整格式为:[registry-host]:[port]/[username]/xxx
  • 只有 Docker Hub 上的镜像可以省略 [registry-host]:[port]

通过 docker push 上传镜像

1 [email protected]:~# docker push localhost:5000/gsophy/docker.edu:v1
2 The push refers to repository [localhost:5000/gsophy/docker.edu]
3 64446057e402: Pushed
4 13a694db88ed: Pushed
5 3fc0ec65884c: Pushed
6 30d0b099e805: Pushed
7 7b4e562e58dc: Pushed
8 v1: digest: sha256:246fed9aa9be7aaba1e04d9146be7a3776c9a40b5cfb3242d3427f79edee37db size: 1367
9 [email protected]:~# 

现在已经可通过 docker pull 从本地 registry 下载镜像了

 1 [email protected]:~# docker pull localhost:5000/gsophy/docker.edu:v1
 2 v1: Pulling from gsophy/docker.edu
 3 177e7ef0df69: Pull complete
 4 65e7b631411e: Pull complete
 5 3249ef8b9272: Pull complete
 6 43ed8fedd0f6: Pull complete
 7 02d3f33bda9d: Pull complete
 8 Digest: sha256:246fed9aa9be7aaba1e04d9146be7a3776c9a40b5cfb3242d3427f79edee37db
 9 Status: Downloaded newer image for localhost:5000/gsophy/docker.edu:v1
10 [email protected]:~#
11 [email protected]:~# docker images  localhost:5000/gsophy/docker.edu:v1
12 REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
13 localhost:5000/gsophy/docker.edu   v1                  ef1dc54703e2        2 weeks ago         132MB

除了镜像的名称长一些(包含 registry host 和 port),使用方式完全一样。

以上是搭建本地 registry 的简要步骤。当然 registry 也支持认证,https 安全传输等特性,具体可以参考官方文档 https://docs.docker.com/registry/configuration/

----------------------引用来自-----------------------

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587627&idx=1&sn=b85416005be844a921c146883ac0e6b8&chksm=8d3080b2ba4709a42459bd4eb977e225e2847c7bc39888c3f6f3e2d903eaf54556518683fa57&scene=21#wechat_redirect

原文地址:https://www.cnblogs.com/gsophy/p/10238470.html

时间: 2024-10-08 20:54:34

第 3 章 镜像 - 020 - 搭建本地 Registry的相关文章

搭建本地 Registry - 每天5分钟玩转 Docker 容器技术(20)

Docker Hub 虽然非常方便,但还是有些限制,比如: 需要 internet 连接,而且下载和上传速度慢. 上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 repository,但不是免费的. 安全原因很多组织不允许将镜像放到外网. 解决方案就是搭建本地的 Registry. Docker 已经将 Registry 开源了,同时在 Docker Hub 上也有官方的镜像 registry.下面我们就在 Docker 中运行自己的 registry. 启动 regist

通过ISO镜像简单搭建本地yum仓库

在一次安装软件过程中,需要依赖包,但是这个依赖包没有在原先的ISO源里面.因为下载的系统包有CD1跟CD2,检查后发现所需的rpm包在CD2里面,直接配置CD2为yum源时缺需要CD1里面的rpm包.最后想了个办法,用软连接把两个ISO的包合并后得到一个完整的安装源. 在一台机器上配置后,可以在这台服务器上搭建http服务器,把它当作一个内网的yum仓库使用.通过目录区分不同版本的yum源,简化并统一内网服务器的yum源配置. 一.原始的yum配置. [[email protected] ~]#

docker系列-搭建本地registry容器的各种坑

总结的坑:a.关注daemon.json的书写格式.一句话可以错好几个点.b.tag要清楚的表示registry服务器的信息,才能push上传成功.不是可有可无的信息.c.tag中有版本号要清楚的写上.系统自动补全的是用latest. #################################################################### 搭建过程:前提:通过docker pull registry下载了registry 1.新建的/etc/docker/daem

通过镜像快速搭建本地yum源

工作中,我们难免会遇到内网环境的服务器,而我们部署服务的时候又必须yum一些依赖来进行服务部署.在无法上网的情况下本地yum源就可以完美的解决这些问题. 前期准备,机器上有centos镜像 (需要强调比如本身系统是 Centos6.2的话.所需要的镜像一定要大于等于此版本) 开始配置 cd /etc/yum.repos.d rm -f * touch cdrom.repo vim cdrom.repo cdrom.repo的文件内容如下 [GuangPan]name=CentOS-$releas

第 3 章 镜像 - 019 - 使用公共 Registry

保存和分发镜像的最直接方法就是使用 Docker Hub.https://hub.docker.com/ Docker Hub 是 Docker 公司维护的公共 Registry.用户可以将自己的镜像保存到 Docker Hub 免费的 repository 中.如果不希望别人访问自己的镜像,也可以购买私有 repository. 除了 Docker Hub,quay.io 是另一个公共 Registry,提供与 Docker Hub 类似的服务. 下面介绍如何用 Docker Hub 存取我们

OpenWRT镜像爬虫搭建本地源

网上的爬虫不能用,还是先表达谢意,不过我比较懒不喜欢重复写别人写的教程,只贴出修改,怎么用自己看教程吧. 我自己改了一版可以正常爬: #!/usr/bin/env python #coding=utf-8 # # Openwrt Package Grabber # # Copyright (C) 2016 sohobloo.me # import urllib2 import re import os import time # the url of package list page, end

centos 搭建本地YUM源并使用apache共享YUM源

搭建本地YUM源 1.挂载镜像 2.搭建本地YUM源 删除多余repo文件保留一个就行 本地YUM源就搭建好了 yum repolist 查看yum源 3.使用apache共享YUM源 YUM服务器配置 安装apache 重启apache 查看是否能看访问,成功后就行下一步 apache默认文件夹在/var/www/html 我们创建一个/var/www/html/CentOS/并讲镜像挂在上去 访问http://192.168.1.100/CentOS能够成功看见文件yum共享就完成了 配置y

docker使用registry搭建本地私有仓库

参考链接来自:http://blog.csdn.net/wangtaoking1/article/details/44180901/ 和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库. 使用私有仓库有许多优点: 节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可: 提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用. 接下来我们就大致说一下如何在本地搭建

docker搭建本地仓库并制作自己的镜像

原文地址https://blog.csdn.net/junmoxi/article/details/80004796 1. 搭建本地仓库1.1 下载仓库镜像1.2 启动仓库容器2. 在CentOS容器中安装JDK2.1 下载CentOS容器2.2 运行Linux容器:2.3 将JDK复制到myCentos容器中2.4 进入容器2.5 解压JDK2.6 配置环境变量2.6.1 刷新环境变量2.6.2 设置开机自动执行source2.6.3 重启容器2.7 将容器提交到镜像里3. 将新制作的镜像推送