首页 > 代码库 > docker 仓库
docker 仓库
Docker仓库
仓库(Repository)是集中存放镜像的地方。
一个容易混淆的概念是注册服务器(Registry)。实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说,仓库可以被认为是一个具体的项目或目录。例如对于仓库地址 docker.sina.com.cn/centos:centos63 来说,docker.sina.com.cn是注册服务器地址,centos 是仓库名,centos63 是仓库的 tag。
Docker Hub 官方仓库
目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了超过 15,000 的镜像。大部分需求,都可以通过在 Docker Hub 中直接下载镜像来实现。
注册&登录
可以通过命令行执行docker login 命令来输入用户名、密码和邮箱来完成注册和登录。注册成功后,本地用户目录的 .docker/config.json中将保存用户的认证信息。
基本操作
用户无需登录即可通过docker search 命令来查找官方仓库中的镜像,并利用docker pull 命令来将它下载到本地。
根据是否是官方提供,可将镜像资源分为两类。一种是类似 centos 这样的基础镜像,被称为基础或根镜像。这些基础镜像是由 Docker 公司创建、验证、支持、提供。这样的镜像往往使用单个单词作为名字。还有一种类型,比如tianon/centos 镜像,它是由 Docker 的用户创建并维护的,往往带有用户名称前缀。可以通过前缀user_name/ 来指定使用某个用户提供的镜像,比如tianon用户。另外,在查找的时候通过 -s N 参数可以指定仅显示评价为 N 星以上的镜像。
创建自己的仓库----镜像仓库
拓扑:
说明:
docker.benet.com 这是docker registry服务器的主机名称,ip是192.168.1.107;因为https的SSL证书要用到主机名,所以要设置主机名。
dockerregistry 服务器作为处理docker镜像的最终上传和下载,用的是官方的镜像registry。
nginx 1.6.x 是一个用nginx作为反向代理服务器
注:关闭selinux
1)私有仓库https支持:
修改主机名:改为docker.benet.com
配置ip地址
连接xshell
做yum 安装依赖软件包
yum -y install pcre-devel zlib-devel openssl openssl-devel
在Nginx编译需要PCRE,因为Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式。需要安装pcre和pcre-devel用yum就能安装。
Zlib库提供了开发人员的压缩算法,在nginx的模块中需要使用gzip压缩。
需要安装zlib和zlib-devel用yum就可以安装
在Nginx中如果需要为服务器提供安全则需要用到OpenSSL库。
需要安装的是openssl和openssl-devel。用yum就可以安装。
生成根密钥
生成根证书
为nginx web服务器生成ssl密钥
#mkdir /etc/pki/CA/ssl
#cd /etc/pki/CA/ssl
注:因为CA中心与要申请证书的nginx服务器是同一个所以就在本机上执行为nginx服务器生成ssl密钥了,否则应该是在另一台需要用到证书的服务器上生成。
查看nginx服务器的密钥
为nginx生成证书签署请求
同样会提示输入一些内容,Commone Name一定要是你要授予证书的服务器域名或主机名,challenge password不填。
私有CA根据请求来签发证书
安装,配置,运行nginx
配置防火墙 安装docker
编辑/etc/sysconfig/docker文件,加上如下一行
DOCKER_OPTS="--insecure-registry docker.benet.com --tlsverify --tlscacert /etc/pki/CA/cacert.pem"
把根证书复制到/etc/docker/certs.d/docker.yy.com/目录下
mkdir -p /etc/docker/certs.d/docker.benet.com
cp /etc/pki/CA/cacert.pem /etc/docker/certs.d/docker.benet.com/ca-certificates.crt
验证registry:
安装docker客户端
上传镜像到本地私有仓库
docker push docker.benet.com/centos:centos6
查看私有仓库是否有对应的镜像
# curl 192.168.0.167:5000/v1/search
查看镜像的存储目录和文件(在镜像服务器)
tree /opt/data/registry/repositories
(1) 弊端:
server端可以login到官方的Docker Hub,可以pull,push官方和私有仓库!
client端只能操作搭设好的私有仓库!
私有仓库不能search!
(2) 优点:
所有的build,pull,push操作只能在私有仓库的server端操作,降低企业风险!
(3) 当client端docker login到官方的https://index.docker.io/v1/网站,出现x509: certificate signed by unknown authority错误时
重命名根证书mv /etc/pki/tls/certs/ca-certificates.crt
/etc/pki/tls/certs/ca-certificates.crt.bak
重启docker服务! servicedocker restart!
本文出自 “刘小兔” 博客,转载请与作者联系!
docker 仓库