docker私有仓库registry部署

准备环境:两个装有Docker(版本1.12)的虚拟机
虚拟机一:192.168.2.55 用户开发机
虚拟机二:192.168.2.10 用作私有仓库

搭建私有仓库

首先在10机器上下载registry镜像

$ docker pull registry

下载完之后我们通过该镜像启动一个容器

$ sudo docker run -d --restart=always -p 5000:5000 -v /export/data/docker/registry:/tmp/registry registry

默认情况下,registry容器会将仓库存放于容器的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我指定本地一个目录挂载到容器的/tmp/registry下。地址为:192.168.2.10:5000

在55机器下pull一个比较小的镜像来测试(此处使用的是alpine)

$ docker pull alpine

修改一下该镜像的tag

$ docker tag alpine 192.168.2.10:5000/alpine

此时还不能push到10私服上,需要在启动docker server时增加启动参数
修改docker启动配置文件(此处是修改55机器的配置)

Ubuntu下配置文件地址为:sudo vi /etc/init/docker.conf
CentOS下配置文件地址为:sudo vi /etc/sysconfig/docker

找到# INSECURE_REGISTRY=‘--insecure-registry‘改为如下:
INSECURE_REGISTRY=‘--insecure-registry 192.168.2.10:5000‘

修改完之后,重启Docker服务

$ sudo service docker restart

重启完之后运行推送命令,把本地镜像推送到私有服务器上

$ docker push 192.168.2.10:5000/alpine

可以看到镜像已经push到私有仓库中去了,接下来我们删除本地镜像,然后从私有仓库中pull下来该镜像

删除了本地镜像,然后我们从私有镜像仓库中下载该镜像

$ docker pull 192.168.2.10:5000/alpine

好了,到此本地搭建registry私有仓库就完结了.

以上操作都是root账号操作都,Docker也可以使用非root用户,比如我创建了www用户。

下面是使用非root用户操作的步骤
创建docker组

sudo groupadd docker

将当前用户加入docker组

sudo gpasswd -a www docker

重新启动docker服务(下面是CentOS7的命令)

sudo service docker restart

www用户退出系统重新登陆
运行docker命令

docker ps

问题:在push镜像到registry时,出现以下错误:

# docker push 192.168.163.10:5000/test 

The push refers to a repository [192.168.2.10:5000/test]
9ec45e5f0334: Retrying in 1 second
33f1a94ed7fc: Retrying in 1 second
b27287a6dbce: Retrying in 1 second
47c2386f248c: Retrying in 1 second
2be95f0d8a0c: Retrying in 1 second
2df9b8def18a: Waiting
received unexpected HTTP status: 500 Internal Server Error

解决办法:

将selinux禁用

关闭SELinux的两种方法

1 永久方法 – 需要重启服务器

修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。

2 临时方法 – 设置系统参数

使用命令setenforce 0

附:
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式

禁用之后就可以push了

查看registry中images:
http://192.168.2.10:5000/v2/_catalog

时间: 2024-09-30 15:21:05

docker私有仓库registry部署的相关文章

教你分分钟搞定Docker私有仓库Registry

一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要Docker Registry,它可以用来存储和管理自己的镜像. 二.安装Docker及Registry 安装Docker见之前博文: http://www.cnblogs.com/Javame/p/5492543.html 安装Regi

(转)教你分分钟搞定Docker私有仓库Registry

转:https://www.cnblogs.com/Javame/p/7389093.html 一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要Docker Registry,它可以用来存储和管理自己的镜像. 二.安装Docker及Registry 安装Docker见之前博文: htt

Docker私有仓库registry

1.docker私有仓库的搭建与使用    docker不仅有一个中央仓库,同时也允许我们搭建自己的私有仓库,如果读者对maven有了解,将很容易理解私有仓库的优势:    1.节省带宽,镜像无需从中央仓库下载,只需要从私有仓库中下载即可    2.对于私有仓库中已经有的镜像,提升了下载速度    3.便于内部镜像的统一管理2.下面我们来讲解一下如何搭建.使用私有仓库:    1.准备两台安装有docker的Centos7的机器,主机规划如下:        主机         IP     

Docker私有仓库Registry的搭建验证

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

Docker私有仓库Registry实战

参考: https://www.cnblogs.com/soar1688/p/6828329.html 1. 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像.这个可以通过开源软件Registry来达成目的. Registry在github上有两份代码:老代码库和新代码库.老代码是采用python编写的,存在pull和p

Docker私有仓库registry+nginx(https)

Docker仓库 仓库(Repository)是集中存放镜像的地方. 一个容易混淆的概念是注册服务器(Registry) .实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像.从这方面来说,仓库可以被认为是一个具体的项目或目录.例如对于仓库地址 docker.sina.com.cn/centos:centos63 来说,docker.sina.com.cn 是注册服务器地址,centos 是仓库名,centos63 是仓库的 tag. Docker Hu

Docker私有仓库Registry认证搭建

前言: 首先,Docker Hub是一个很好的用于管理公共镜像的地方,我们可以在上面找到想要的镜像(Docker Hub的下载量已经达到数亿次):而且我们也可以把自己的镜像推送上去.但是,有的时候我们的使用场景需要拥有一个私有的镜像仓库用于管理自己的镜像,这个时候我们就通过Registry来实现此目的.本文详细介绍了本地镜像仓库Docker Registry及Auth Server认证搭建. 集群环境: 系统 主机名 IP地址(Host-Only) 描述 Centos7.2.1511 contr

Docker私有仓库 Registry中的镜像管理

如何删除私有 registry 中的镜像? 首先,在默认情况下,docker registry 是不允许删除镜像的,需要在配置config.yml中启用:vim /etc/docker/registry/config.yml version: 0.1 log: fields: service: registry storage: delete: enable: true cache: blobdescriptor: inmemory filesystem: rootdirectory: /var

局域网部署docker--从无到有创建自己的docker私有仓库

由于GFW的关系,国内用户在使用docker的时候,pull一个基本的镜像都拉下来,更不用说使用官方的index镜像了.差点放弃使用docker了,google了一圈,总算找到办法. 第一步:安装docker 参见官方指南或则各类中文指南 第二步:从文件系统创建一个image镜像 创建镜像有很多方法,官方的推荐是pull一个,无奈GFW,想下一个基本的ubuntu都下不下来 还有一个办法就是从一个文件系统import一个镜像,个人推荐可以使用opvz的模板来创建: openvz的模板下载地址如下