【Docker Registry】用docker registry 镜像搭建私有测试仓库

Registry 使用Go语言编写,在性能和安全性上做了很多优化,重新设计了镜像的存储格式。

如果需要安装registry ,只需下载最新的registry镜像即可,应该说此类仓库搭建只能用于测试学习之用,不能用于生产环境。

生产环境中,请使用 nexus或harbor之类的可以用来构建docker镜像仓库软件!

一、实验环境


两台装有Docker的CentOS7.2虚拟机

虚拟机1:192.168.112.132 用作测试机

虚拟机2:192.168.112.136 用作私有仓库

此处我们准备了两个虚拟机,分别都安装了Docker,其中132机器用作开发机,136机器用作registry私有仓库机器。环境准备好之后接下来我们就开始搭建私有镜像仓库。


二、搭建私有仓库 


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

# docker pull registry


用镜像启动一个容器

# docker run -d -p 5000:5000 registry

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

# docker run -d   -p 5000:5000    --privileged=true   --restart=always --name=docker_registry  -v /opt/data/registry:/tmp/registry   registry


可以看到我们启动了一个容器,地址为:192.168.112.136:5000

相关参数说明:

-p   --publish  端口映射

-v /opt/registry:/tmp/registry  默认情况下,会将仓库存放于容器内的/tmp/registry目录下,指定本地目录挂载到容器 

--privileged=true  CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权。不加上传镜像会报权限错误(OSError: [Errno 13] Permission denied: '/tmp/registry/repositories/liibrary')或者(Received unexpected HTTP status: 500 Internal Server Error)错误

--restart=always  创建容器,设置为随docker启动

--name    容器名,此处为仓库名

三、实验测试

将一个本地镜像push到私有仓库中,首先在132机器下pull一个比较小的镜像来测试(此处使用的是busybox)

# docker pull busybox

给镜像打tag,tag不加版本号,默认是latest

#  docker tag busybox  192.168.112.136:5000/busybox

tag 加上特定的版本号v1

#  docker tag  busybox    192.168.112.136:5000/busybox:v1 

将打了tag的镜像上传到私有仓库

# docker  push   192.168.112.136:5000/busybox

# docker  push  192.168.112.136:5000/busybox:v1 


可以看到push失败,具体错误如下:

Error: Invalid registry endpoint https://192.168.112.136:5000/v1/: Get https://192.168.112.136:5000/v1/_ping: dial tcp 192.168.112.136:5000: connection refused.

If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 192.168.112.136: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/192.168.112.136:5000/ca.crt 

因为Docker从1.3.x之后,与docker registry交互默认使用的是https,然而此处搭建的私有仓库只提供http服务,所以当与私有仓库交互时就会报上面的错误。

为了解决这个问题需要在启动docker server时增加启动参数为默认使用http访问。

修改docker启动配置文件(此处是修改132机器的配置)在其中增加"--insecure-registry 192.168.112.136:5000"


方法一:

修改Docker配置文件

# vim /etc/default/docker

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

方法二:

通过修改daemon配置文件 /etc/docker/daemon.json

# vim    /etc/docker/daemon.json


如果是多个仓库



方法三:

修改docker的启动参数

1. 如果是命令行启动,添加参数   --insecure-registry 192.168.112.136:5000

# dockerd   --insecure-registry 192.168.112.136:5000

2.如果用systemctl启动,修改服务的service文件 

# vim  /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd  --insecure-registry 192.168.112.136:5000


无论使用那种方式,要使得配置生效,都需要重启docker

# systemctl  restart docker 

# docker info


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

# docker  push192.168.112.136:5000/busybox

可以看到镜像已经push到私有仓库中去了。


我们删除本地镜像,然后从私有仓库中pull下来该镜像。

# docker  pull192.168.112.136:5000/busybox


到此就搭建好了Docker私有仓库,上面搭建的仓库是不需要认证的,我们可以结合nginx和https实现认证和加密功能。

四、参考

Authenticate proxy with nginx

https://docs.docker.com/registry/recipes/nginx


透过 nginx 反向代理docker 私有 registry

https://www.jianshu.com/p/265f228a0471

https://blog.csdn.net/wanglei_storage/article/details/51444432

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容