centos7搭建docker私有仓库一键配置脚本记录[1]

[干货]

这是我最后将registry 私有仓库配置成功后总结的一键安装脚本,基本上修改下开头的几个参数就可以了,毕竟不是所有人都要做docker运维的,希望对有缘人有些帮助。
系统环境:
centos 7.0
docker 1.12

1、首先修改 /etc/pki/tls/openssl.cnf 配置,在该文件中找到 [ v3_ca ]
,在它下面添加如下内容:

...
[ v3_ca ]
# Extensions for a typical CA
subjectAltName = IP:192.168.1.211

再次重启 docker,解决 "x509: cannot validate certificate for 192.168.1.211 because it doesn't contain any IP SANs" bugs。

2、安装docker private registry 私有仓库

#!/bin/bash
#install.sh
#docker 仓库服务器ip
hostname=x.x.x.x

#docker pull/push 时用的user和password;pull/push 前先docker login hostname:5000
user=test
password=test

#docker仓库的certs配置文件存放位置
#rootdir=$(pwd)
rootdir=/data/registry

#docker仓库数据库存放位置
#set the registry data folder/directory
registrydir=$rootdir/registry

cd $rootdir

echo $hostname
echo $rootdir
echo $registrydir

mkdir $registrydir


#docker registry:2 需要用ssl方式,我们小企业没有申请商用ca证书,采用自己生成ca证书的方式。certification files (*.key, *.crt)
mkdir -p certs && openssl req \
  -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key\
  -x509 -days 365 -out certs/domain.crt


mkdir -p /etc/docker/certs.d/$hostname:5000/

#将证书公钥放到docker的证书文件夹
cp certs/domain.crt /etc/docker/certs.d/$hostname:5000/ca.crt

#生成登录验证用户
mkdir auth
docker run --entrypoint htpasswd registry:2 -Bbn $user $password > auth/htpasswd

#现删除掉已经运行registry(如果没有无所谓)
docker rm -f registry

#启动一个docker registry 容器,提供私有仓库服务,over
docker run -d -p 5000:5000 --restart=always --name registry \
  -v $rootdir/auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  -v $rootdir/certs:/certs \
  -v $registrydir:/var/lib/registry \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  registry:2

3、客户端初次使用

#!/bin/bash

hostname=x.x.x.x
user=test
password=test

rootdir=/data/registry

echo $hostname
echo $rootdir

mkdir -p /etc/docker/certs.d/$hostname:5000/
#导入服务器端的证书
scp root@$hostname:/$rootdir/certs/domain.crt /etc/docker/certs.d/$hostname:5000/ca.crt

4、docker pull/docker push

docker login $hostname:5000
#enter user and password


docker tag 5e3f  hostname:5000/allen/mongo-replication:3.2  
docker push hostname:5000/allen/mongo-replication:3.2

...
docker pull hostname:5000/allen/mongo-replication:3.2

缘起

拥抱大数据,首先得有能支撑的大数据的基础软件工具,如分布式数据库、hadoop、scala、spark等等一系列的软件、框架,而在这之前首先要选择这些基础架构软件的部署方式,既然我现在是“从零学习大数据技术”,当然要必须考虑到一些实际工作因素,最终我选择了docker 容器部署技术,主要原因有三:

  1. 大数据生态圈的软件非常庞杂,软件依赖、版本交叉等就会很复杂,docker提供了高效的容器隔离;我们开发就要用到golang、python、ruby、js、php、java等等多种语言环境和相关的支持库,各个环境、版本的管理、分发将会越来越复杂,docker容器从根源上避免了这些问题,每个服务/功能都自己部署一个容器,互不干扰,一切都安静了。
  2. 从零学习,自然就会测试很多的软件工具,安装、配置、删除等相当平凡,如何最少影响当前的系统环境?当然是容器技术嘛!
  3. 开发阶段我们都是在一组零时的较低成本的机器上进行配置、学习、开发,一旦可投入生产环境了就必须进行在生产服务器上进行部署。如果用传统的一个一个软件的方式安装,那个痛苦不敢想象!软件迁移部署是docker的最重要的应用场景。
    。。。

当我们决心拥抱docker技术的时候,痛苦也即将开始——等!由于我们的主要业务在国内,那么我们的服务器就在墙内,所以docker pull将是一个“等”体验。我们通常都是在每台机器上输入一条docker pull命令后就去干别的。每当此时我就感谢华罗庚教授的“统筹方法”(不懂?小学语文课是怎么学的?)。更痛苦的是多台机器都要做同样的操作?如何避免?google上有很多文档,有介绍用aliyun mirrors服务的,有介绍daocloud加速器的,但是当我一一试过之后才发现然并卵——我们现在用的ucloud服务器,反正我都没有搞成功!

当时我有些骑虎难下了,你造吗?碰了一次又一次南墙。但我没有半途而废,于是我就想到了自己写Dockerfile,然后自己架设 一个局域网内的私有docker镜像仓库。于是又开始google,又试了多个文档,白天碰完南墙,晚上接着碰,终于搞定。在最后,我总结成了一个bash脚本提交到了github上,备忘、也希望可以给有缘人以帮助,毕竟我们是要用docker来提升工作效率,而不是做docker运维。

github link: https://github.com/sunminghong/docker-registry

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

推荐阅读更多精彩内容