首页 > 代码库 > docker仓库(手动创建)

docker仓库(手动创建)

实验需求:

创建自己的仓库----镜像仓库

实验环境

两台centos7虚拟机

技术分享

实验步骤:

说明:

docker.benet.com这是docker registry服务器的主机名称,ip192.168.1.107;因为httpsSSL证书要用到主机名,所以要设置主机名。

dockerregistry 服务器作为处理docker镜像的最终上传和下载,用的是官方的镜像registry

nginx 1.6.x 是一个用nginx作为反向代理服务器

注:关闭selinux

技术分享

挂载centos7系统盘

技术分享

手动创建yum源

技术分享

私有仓库https支持:

安装依赖软件包:

技术分享

编辑/etc/hosts,docker.benet.comip地址添加进来,例如:

主机名、ip地址

技术分享

生成根密钥

先把

/etc/pki/CA/cacert.pem 
/etc/pki/CA/index.txt 
/etc/pki/CA/index.txt.attr 
/etc/pki/CA/index.txt.old 
/etc/pki/CA/serial 
/etc/pki/CA/serial.old

删除掉!

技术分享

生成根证书

技术分享

输出如下信息

技术分享

会提示输入一些内容,因为是私有的,所以可以随便输入,最好记住能与后面保持一致,特别是"Common Name”。必须要和hostname显示的一致。

上面的自签证书cacert.pem应该生成在/etc/pki/CA

技术分享

nginx web服务器生成ssl密钥

技术分享

注:因为CA中心与要申请证书的nginx服务器是同一个所以就在本机上执行为nginx服务器生成ssl密钥了,否则应该是在另一台需要用到证书的服务器上生成。

查看nginx服务器的密钥

技术分享

nginx生成证书签署请求(同样会提示输入一些内容,Commone Name一定要是你要授予证书的服务器域名或主机名,challenge password不填)

技术分享

私有CA根据请求来签发证书

技术分享

输出内容

技术分享

同样会提示输入一些内容,选择y就可以了!

查看nginx的证书

技术分享

安装,配置,运行nginx

添加组和用户

技术分享

下载nginx源文件

技术分享

编译 nginx:

技术分享

安装(上述选项的解释:

--user=USER 设定程序运行的用户环境(www)
--group=GROUP
设定程序运行的组环境(www)

--prefix=PATH 设定安装目录

--with-pcre启用pcre库,NginxRewrite模块和HTTP核心模块会使用到PCRE正则表达式

--with-http_stub_status_module 是为了启用 nginx  NginxStatus 功能,用来监控 Nginx 的当前状态

--with-http_ssl_module                    开启SSL模块,支持使用HTTPS协议的网页

--with-http_realip_module               开启Real IP的支持,该模块用于从客户请求的头数据中读取Real Ip地址

--with-http_addition_module          开启Addtion模块,该模块允许你追加或前置数据到相应的主体部分

--with-http_flv_module模块ngx_http_flv_module Flash Video(FLV)文件提供服务端伪流媒体支持)

技术分享

编辑/opt/nginx/conf/nginx.conf文件

技术分享

技术分享

验证配置

技术分享

启动nginx

技术分享

验证nginx是否启动

技术分享

配置,运行Docker

编辑/etc/sysconfig/docker文件,加上如下一行

技术分享

技术分享

把根证书复制到/etc/docker/certs.d/docker.yy.com/目录下

技术分享

启动docker

技术分享

通过获取官方 registry 镜像来运行

技术分享

将目录/opt/data/registry作为私有仓库的位置

技术分享

运行私有仓库容器

(可以通过 -v 参数来将镜像文件存放在本地的指定路径。例如上面的例子将上传的镜像放到 /opt/data/registry 目录。

-p(小写的)用于将容器的5000端口映射宿主机的5000端口)

技术分享

验证registry

技术分享

注意防火墙

技术分享

服务端的配置就到此完成!

 

Docker客户端配置

编辑/etc/hosts,docker.benet.comip地址添加进来

技术分享

docker registry服务器端的根证书追加到ca-certificates.crt文件里

先从docker registry服务器端把文件/etc/pki/CA/cacert.pem拷贝到本机,然后执行命令:

cat./cacert.pem>> /etc/pki/tls/certs/ca-certificates.crt

技术分享

技术分享

验证docker.yy.com下的registry

技术分享

导入镜像

技术分享

开启docker服务

技术分享

Docker HUB 上拉取一个镜像测试,为基础镜像打个标签:

docker tag centos:centos6docker.benet.com/centos:centos6

技术分享

技术分享

发布:上传镜像到本地私有仓库

技术分享

查看私有仓库是否有对应的镜像

# curl 192.168.0.167:5000/v1/search

查看镜像的存储目录和文件(在镜像服务器)

tree /opt/data/registry/repositories

技术分享

从私有仓库pull下来image,查看image

技术分享

查看私有仓库是否有对应的镜像

技术分享



本文出自 “youyou” 博客,转载请与作者联系!

docker仓库(手动创建)