使用Docker registry镜像创建私有仓库的方法

安装Docker后,可以通过官方提供的registry镜像来简单搭建一套本地私有仓库环境,本文记录简单的搭建过程。

1 使用registry启动私有仓库的容器

docker run -d -p 5000:5000 -v /root/my_registry:/tmp/registry registry

说明:若之前没有安装registry容器则会自动下载并启动一个registry容器,创建本地的私有仓库服务。默认情况下,会将仓库创建在容器的/tmp/registry目录下,可以通过 -v 参数来将镜像文件存放在本地的指定路径上(例如,放在本地目录/root/my_registry下)。

2 向私有仓库push镜像

docker push 104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04

说明:根据第一步启动的registry容器所在宿主主机的IP和Port,push某环境的本地容器。

root@gerryyang:~# docker push 104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04
The push refers to a repository [104.131.173.242:5000/ubuntu_sshd_gcc_gerry] (len: 1)
Sending image list
Pushing repository 104.131.173.242:5000/ubuntu_sshd_gcc_gerry (1 tags)
511136ea3c5a: Image successfully pushed
3b363fd9d7da: Image successfully pushed
607c5d1cca71: Image successfully pushed
f62feddc05dc: Image successfully pushed
8eaa4ff06b53: Image successfully pushed
894c0161121f: Image successfully pushed
a45787b0222f: Image successfully pushed
f0e3262ed661: Image successfully pushed
Pushing tag for rev [f0e3262ed661] on {http://104.131.173.242:5000/v1/repositories/ubuntu_sshd_gcc_gerry/tags/14.04} 

宿主主机my_registry的目录结构

 root@gerryyang:~/my_registry# tree
.
├── images
│  ├── 3b363fd9d7dab4db9591058a3f43e806f6fa6f7e2744b63b2df4b84eadb0685a
│  │  ├── ancestry
│  │  ├── _checksum
│  │  ├── json
│  │  └── layer
│  ├── 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158
│  │  ├── ancestry
│  │  ├── _checksum
│  │  ├── json
│  │  └── layer
│  ├── 607c5d1cca71dd3b6c04327c3903363079b72ab3e5e4289d74fb00a9ac7ec2aa
│  │  ├── ancestry
│  │  ├── _checksum
│  │  ├── json
│  │  └── layer
│  ├── 894c0161121f105ac9b81bca7ac583ac1f29772625911db0fa2b6b475f5642fd
│  │  ├── ancestry
│  │  ├── _checksum
│  │  ├── json
│  │  └── layer
│  ├── 8eaa4ff06b53ff7730c4d7a7e21b4426a4b46dee064ca2d5d90d757dc7ea040a
│  │  ├── ancestry
│  │  ├── _checksum
│  │  ├── json
│  │  └── layer
│  ├── a45787b0222f955d68d9db34fb18033144b8a78015d9e306a1613894da0fd86e
│  │  ├── ancestry
│  │  ├── _checksum
│  │  ├── json
│  │  └── layer
│  ├── f0e3262ed6617896b306852c923e4c0e1d359b58b29a02ef849c4b8978c73c65
│  │  ├── ancestry
│  │  ├── _checksum
│  │  ├── json
│  │  └── layer
│  └── f62feddc05dc67da9b725361f97d7ae72a32e355ce1585f9a60d090289120f73
│    ├── ancestry
│    ├── _checksum
│    ├── json
│    └── layer
└── repositories
  └── library
    └── ubuntu_sshd_gcc_gerry
      ├── _index_images
      ├── tag_14.04
      └── tag14.04_json 

12 directories, 35 files 

关于https的问题

root@gerryyang:~# docker push 104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04
FATA[0002] Error: Invalid registry endpoint https://104.131.173.242:5000/v1/: Get https://104.131.173.242:5000/v1/_ping: EOF. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 104.131.173.242:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/104.131.173.242:5000/ca.crt  

解决方法:

修改Docker配置文件

vim /etc/default/docker

增加以下一行

DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=104.131.173.242:5000"

重启Docker

sudo service docker restart

3 私有仓库查询方法

curl http://104.131.173.242:5000/v1/search

说明:使用curl查看仓库104.131.173.242:5000中的镜像。在结果中可以查看到ubuntu_sshd_gcc_gerry,说明已经上传成功了。

gerryyang@mba:personal_repository$curl http://104.131.173.242:5000/v1/search
{"num_results": 0, "query": "", "results": []}
gerryyang@mba:personal_repository$curl http://104.131.173.242:5000/v1/search
{"num_results": 1, "query": "", "results": [{"description": "", "name": "library/ubuntu_sshd_gcc_gerry"}]} 

4 在其他的机器上访问和下载私有仓库的镜像

docker pull 104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04
root@gerryyang:~# docker pull 104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04
Pulling repository 104.131.173.242:5000/ubuntu_sshd_gcc_gerry
f0e3262ed661: Download complete
511136ea3c5a: Download complete
3b363fd9d7da: Download complete
607c5d1cca71: Download complete
f62feddc05dc: Download complete
8eaa4ff06b53: Download complete
894c0161121f: Download complete
a45787b0222f: Download complete
Status: Image is up to date for 104.131.173.242:5000/ubuntu_sshd_gcc_gerry:14.04 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解Docker私有仓库Registry的搭建验证

    1. 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像.这个可以通过开源软件Registry来达成目的. Registry在github上有两份代码:老代码库和新代码库.老代码是采用python编写的,存在pull和push的性能问题,出到0.9.1版本之后就标志为deprecated,不再继续开发.从2.0版本开始就到

  • docker-registry使用笔记

    相关链接 github:https://github.com/dotcloud/docker-registry api:http://docs.docker.com/reference/api/registry_api/ 安装docker-registry 官方直接给出了一个创建container的命令,在装有docker的机器上运行docker run -d -p 5000:5000 registry, 这个貌似要下载很多东西,大概500M左右,免去了手工安装的过程,很方便. 安装安成之后直接

  • Docker Registry 私有仓库搭建详细步骤

    Docker  Registry 私有仓库搭建 官方已经提供了很多版本的 Linux 镜像,直接从官方仓库(Public Repositories)下载就可以了.如果考虑到安全性和速度,我们可能会想在自己局域网里架设一个私有仓库(Private Repositories)来放我们自己的镜像,Docker-Registry 正是我们需要的工具. 本次搭建 docker-registry server (dev) (v0.9.0) 添加docker用户和目录 为了安全起见,我们可以添加一个用户doc

  • 详解Docker Registry之删除镜像、垃圾回收

    Docker仓库在2.1版本中支持了删除镜像的API,但这个删除操作只会删除镜像元数据,不会删除层数据.在2.4版本中对这一问题进行了解决,增加了一个垃圾回收命令,删除未被引用的层数据.本文对这一特性进行了体验,具体步骤如下. 1.部署镜像仓库 (1)启动仓库容器 复制代码 代码如下: dockerrun -d -v /home/config.yml:/etc/docker/registry/config.yml -p 4000:5000 --nametest_registryregistry:

  • docker registry安装简单命令实现

    本文计划使用3条命令来运行一个Docker registry私服,其实很简单 环境准备: docker 1.11.2 compose文件docker-compose.yml version: '2' services: registry: image: registry:2.5.1 hostname: registry ports: - "5000:5000" environment: - TZ="Asia/Shanghai" - "REGISTRY_AU

  • 搭建一个私有的Docker registry教程

    为什么需要搭建一个私有的registry呢?嗯,对于新手来说,Docker Hub(一个Docker公共仓库)只允许你拥有一个免费的私有版本库(repo).其他的公司也开始提供类似服务,但是价格可不便宜.另外,如果你需要用Docker部署一个用于生产环境的应用,恐怕你不希望将这些镜像放在公开的Docker Hub上吧! 这篇文章提供了一个非常务实的方法来处理搭建私有Docker registry时出现的各种错综复杂的情况.我们将会使用一个运行于DigitalOcean(之后简称为DO)的非常小巧

  • 使用Docker registry镜像创建私有仓库的方法

    安装Docker后,可以通过官方提供的registry镜像来简单搭建一套本地私有仓库环境,本文记录简单的搭建过程. 1 使用registry启动私有仓库的容器 docker run -d -p 5000:5000 -v /root/my_registry:/tmp/registry registry 说明:若之前没有安装registry容器则会自动下载并启动一个registry容器,创建本地的私有仓库服务.默认情况下,会将仓库创建在容器的/tmp/registry目录下,可以通过 -v 参数来将

  • Docker上传镜像至私有仓库的方法示例

    镜像可以很方便直接 push 到 docker 的公共仓库,就好像 github 一样,但是我们在开发中很多时候都不想公开镜像文件,这时就需要搭建 docker 的私有仓库,就好像 gitlab 一样. 在 上一篇 构建出镜像后,我们可以部署一个私有镜像仓库用来存放我们的镜像. 启动私有 Registry 启动一个私有仓库也非常简单,在服务器上执行命令 复制代码 代码如下: docker run -d -p 5000:5000 --name="docker-registry" --re

  • docker 查询或获取私有仓库(registry)中的镜像的方法

    docker 查询或获取私有仓库(registry)中的镜像,使用 docker search 192.168.1.8:5000 命令经测试不好使. 解决: 1.获取仓库类的镜像: [root@shanghai docker]# curl -XGEThttp://192.168.1.8:5000/v2/_catalog {"repositories":["nginx"]} 2.获取某个镜像的标签列表: [root@shanghai docker]# curl -XG

  • Docker buildx构建多平台镜像并推送到私有仓库的方法

    引子 最近发现有ARM版Docker,hub.docker.com上也有ARM版本的镜像,但是ARM版本的Docker镜像构建是个问题.嵌入式程序可以在PC机上进行交叉编译,不知道Docker是否有交叉构建的方案. 方案 目前想到的Docker构建ARM镜像方法有如下几种.第三种就类似交叉编译. 使用ARM主机,安装ARM版本的Docker,docker build出来的就是ARM版本的镜像. 使用Linux的虚拟化软件,模拟ARM芯片+ Linux,例如qemu. 使用Docker试验功能bu

  • Docker容器搭建本地私有仓库详情

    目录 前言 一.首先下载registry镜像 二.在daemon.json文件中添加私有镜像仓库的地址并重启 三.创建registry容器并开放端口 四.给镜像打标签后上传到私有仓库 五.获取私有仓库列表查看是否上传成功 六.验证:从私有仓库下载镜像 前言 Docker 官方提供了一个搭建私有仓库的镜像 registry ,运行该镜像的容器并且对外暴露5000端口就ok了.通常我们在docker拉取的镜像都是在docker hub或quay.io等公有仓库获取,那么在实际工作中,每个公司如果使用

  • docker registry 镜像同步的实现思路

    Intro 之前我们的 docker 镜像是保存在 Azure 的 Container Registry 里的,最近我们自己搭建了一个 docker registry,我们想把之前保存的 Azure 的 Container Registry 的 docker 镜像同步到我们自己的 docker registry 里 实现思路 我们的做法比较简单也比较LOW,但是基本可以满足要求, 我们的做法是 首先获取到源 Registry 里的所有镜像列表 然后逐个获取镜像的 tags 然后依次遍历将对应的镜

  • Nexus3x创建私有仓库并使用gradle上传jar包

    目录 一.创建私有仓库 二.将私有仓库添加到maven-public库中 三.使用Gradle上传jar包到私有仓库示例 一.创建私有仓库 1.打开Nexus首页并登录,进入设置界面,点击创建 2.选择maven2 hosted类型的仓库 3.输入创建的仓库的名称,如果允许重复部署,可以将下方的Disable redeploy更改为Allow Redeploy 二.将私有仓库添加到maven-public库中 1.打开maven-public的设置界面 2.将我们创建的库添加到maven-pub

  • docker使用阿里云镜像仓库的方法

    本文介绍了docker使用阿里云镜像仓库的方法,分享给大家,具体如下: 1:阿里云docker仓库 https://dev.aliyun.com/search.html 2:进去注册帐号后,点击自己的管理中心. 3:在管理中心点击加速器,右边面板会有你的加速地址,右边面板下面有详细设置步骤. 以下代码用于检测你有没有开启加速器 sudo ps -ef | grep root 17825 1 0 16:50 ? 00:00:11 /usr/bin/dockerd --registry-mirror

  • 基于Harbor构建docker私有仓库的方法

    目录 一.harbor简介 一.harbor构建私有仓库 三.维护管理Harbor 四.创建Harbor用户 一.harbor简介 基于镜像的复制策略:支持LDAP/AD域,通过VPN连接域使用:图像删除和垃圾收集:图像UI,方便:审计,此功能使用较少,一般企业中用ELK收集.分析日志:RESTful API 一.harbor构建私有仓库 1.上传dock-compose,并设置权限 [root@harbor ~]# cd /usr/local/bin/ [root@harbor bin]# r

  • 使用docker compose安装harbor私有仓库的详细教程

    概述 harbor是什么呢?英文单词的意思是:港湾.港湾用来存放集装箱(货物的),而docker的由来正是借鉴了集装箱的原理,所以harbor是用于存放docker的镜像,作为镜像仓库使用.官方的说法是:Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. harbor镜像仓库是由VMware开源的一款企业级镜像仓库,它包括权限管理(RBAC).LDAP.日志审核.管理界面.自我注册.镜像复制等诸多功能. 一.harbor特性 1.基于角色的访问控制:用户和存储库是通

随机推荐