您的位置:首页 > 运维架构 > Docker

CentOS 7 : Docker私有仓库搭建和使用

2017-08-16 11:58 896 查看
系统环境: CentOS 7.2 

192.168.0.179:Docker仓库 

192.168.0.60:客户端

安装并启动docker
yum -y install docker
systemctl start docker
systemctl enable docker
1
2
3
1
2
3


搭建私有仓库

179上下载registry镜像
docker pull registry
1
1

防火墙添加运行5000端口
iptables -I INPUT 1 -p tcp --dport 5000 -j ACCEPT
1
1

下载完之后我们通过该镜像启动一个容器
docker run -d -p 5000:5000 --privileged=true -v /opt/registry:/tmp/registry registry
1
1

参数说明: 

-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)错误


客户端上传镜像

修改/etc/sysconfig/docker(Ubuntu下配置文件地址为:/etc/init/docker.conf),增加启动选项(已有参数的在后面追加),之后重启docker,不添加报错,https证书问题。
OPTIONS='--insecure-registry 192.168.0.179:5000'    #CentOS 7系统
other_args='--insecure-registry 192.168.0.179:5000' #CentOS 6系统
1
2
1
2

因为Docker从1.3.X之后,与docker registry交互默认使用的是https,而此处搭建的私有仓库只提供http服务 

在docker公共仓库下载一个镜像
docker pull docker.io/centos
1
1

来修改一下该镜像的tag
docker tag centos 192.168.0.179:5000/centos
1
1

把打了tag的镜像上传到私有仓库
docker push 192.168.0.179:5000/centos
1
1

客户端添加私有仓库地址
# 添加这一行
ADD_REGISTRY='--add-registry 192.168.0.179:5000'
1
2
1
2

加上后,search镜像,私有仓库和docker hub上都会显示; 

不加搜索私有仓库,需要命令中指定私有仓库ip


使用仓库中的镜像

查询私有仓库中的所有镜像,使用docker search命令:
curl  http://192.168.37.101:5000/v2/_catalog
curl  http://192.168.37.101:5000/v2/pz/centos/tags/list
1
2
1
2

查询仓库中指定账户下的镜像,则使用如下命令:
docker search registry_ip:5000/account/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker