运维开发网

docker仓库(手动创建

运维开发网 https://www.qedev.com 2020-03-27 10:25 出处:网络 作者:运维开发网整理
实验需求: 创建自己的仓库----镜像仓库 实验环境: 两台centos7虚拟机 实验步骤: 说明: docker.benet.com这是docker registry服务器的主机名称,ip是192.168.1.107;因为https的SSL证书要用到主机名,所以要设置主机名。 dockerregistry 服务器作为处理docker镜像的最终上传和下载,用的是官方的镜像registry。 ngi

实验需求:

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

实验环境

两台centos7虚拟机

docker仓库(手动创建

实验步骤:

说明:

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

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

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

注:关闭seLinux

docker仓库(手动创建

挂载centos7系统盘

docker仓库(手动创建

手动创建yum源

docker仓库(手动创建

私有仓库https支持:

安装依赖软件包:

docker仓库(手动创建

编辑/etc/hosts,把docker.benet.com的ip地址添加进来,例如:

主机名、ip地址

docker仓库(手动创建

生成根密钥

先把

/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

删除掉!

docker仓库(手动创建

生成根证书

docker仓库(手动创建

输出如下信息

docker仓库(手动创建

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

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

docker仓库(手动创建

为nginx web服务器生成ssl密钥

docker仓库(手动创建

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

查看nginx服务器的密钥

docker仓库(手动创建

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

docker仓库(手动创建

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

docker仓库(手动创建

输出内容

docker仓库(手动创建

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

查看nginx的证书

docker仓库(手动创建

安装,配置,运行nginx

添加组和用户

docker仓库(手动创建

下载nginx源文件

docker仓库(手动创建

编译 nginx:

docker仓库(手动创建

安装(上述选项的解释:

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

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

--prefix=PATH 设定安装目录

--with-pcre启用pcre库,Nginx的Rewrite模块和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)文件提供服务端伪流媒体支持)

docker仓库(手动创建

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

docker仓库(手动创建

docker仓库(手动创建

验证配置

docker仓库(手动创建

启动nginx

docker仓库(手动创建

验证nginx是否启动

docker仓库(手动创建

配置,运行Docker

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

docker仓库(手动创建

docker仓库(手动创建

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

docker仓库(手动创建

启动docker

docker仓库(手动创建

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

docker仓库(手动创建

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

docker仓库(手动创建

运行私有仓库容器

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

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

docker仓库(手动创建

验证registry

docker仓库(手动创建

注意防火墙

docker仓库(手动创建

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

 

Docker客户端配置

编辑/etc/hosts,把docker.benet.com的ip地址添加进来

docker仓库(手动创建

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

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

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

docker仓库(手动创建

docker仓库(手动创建

验证docker.yy.com下的registry

docker仓库(手动创建

导入镜像

docker仓库(手动创建

开启docker服务

docker仓库(手动创建

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

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

docker仓库(手动创建

docker仓库(手动创建

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

docker仓库(手动创建

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

# curl 192.168.0.167:5000/v1/search

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

tree /opt/data/registry/repositories

docker仓库(手动创建

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

docker仓库(手动创建

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

docker仓库(手动创建

0

精彩评论

暂无评论...
验证码 换一张
取 消