重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

docker私有仓库搭建-创新互联

http://xiaorenwutest.blog.51cto.com

成都服务器托管,创新互联建站提供包括服务器租用、西部信息机房、带宽租用、云主机、机柜租用、主机租用托管、CDN网站加速、主机域名等业务的一体化完整服务。电话咨询:13518219792

 docker中部署私有仓库

前言:在docker中如果要使用镜像必须从本地或者从docker Hup公共仓库中下载镜像,但是如果需要的镜像本地没有;另外公共仓库中的镜像或许会有我们需要的镜像,但是出于安全的考虑也不会使用。那么有没有一种办法可以存储自己的镜像的仓库呢?就是搭建自己的私有仓库。

注:搭建自己的私有仓库在生产环境中需要CA服务器,另外我们需要一个nginx进行反向代理,在使用CA服务器进行连接的时候是通过https协议进行加密传输的,所以需要安装openssl包裹。

实验环境:

docker私有仓库搭建

两台Linux主机,一台服务器ip192.168.65.128,另外一台为客户端IP192.168.65.129

说明:

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

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

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

注:关闭selinux

1)私有仓库https支持:

A)安装依赖软件包:

docker私有仓库搭建

1:首先安装docker环境,将docker设置为启动

docker私有仓库搭建

添加系统服务和启动docker服务

docker私有仓库搭建

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

主机名、ip地址:

docker私有仓库搭建

(2) 生成根密钥

先把

/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

删除掉!

如果没有则不用删除,另外在初始安装CA的时候不用删除

docker私有仓库搭建

(3) 生成根证书

执行如下图:

docker私有仓库搭建

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

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

docker私有仓库搭建

(4) 为nginx web服务器生成ssl密钥

#mkdir  /etc/pki/CA/ssl

#cd  /etc/pki/CA/ssl

docker私有仓库搭建

接下来为nginx生成秘钥

docker私有仓库搭建

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

查看nginx服务器的密钥

docker私有仓库搭建

(5) 为nginx生成证书签署请求

执行

docker私有仓库搭建

同样会提示输入一些内容,Commone Name一定要是你要授予证书的服务器域名或主机名,challenge password不填。

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

docker私有仓库搭建

执行

openssl ca -in nginx.csr -out nginx.crt

输出内容:nginx的证书信息

docker私有仓库搭建

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

查看nginx的证书

docker私有仓库搭建

查看生成的证书

docker私有仓库搭建

安装,配置,运行nginx

(1) 添加组和用户

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)文件提供服务端伪流媒体支持

编辑nginx配置文件

docker私有仓库搭建

docker私有仓库搭建

语法检测:是否ok

docker私有仓库搭建

启动nginx另外查看是否为443端口使用https协议

 docker私有仓库搭建

2) 配置,运行Docker

(1) 停止docker

docker私有仓库搭建

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

DOCKER_OPTS="--insecure-registry docker.benet.com --tlsverify --tlscacert /etc/pki/CA/cacert.pem"

docker私有仓库搭建

(3) 把根证书复制到/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

docker私有仓库搭建

(4) 启动docker

docker私有仓库搭建

3)运行私有仓库容器

运行registry 镜像来搭建私有仓库,通过官方获得

docker私有仓库搭建

docker私有仓库搭建

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

docker私有仓库搭建

运行私有仓库容器

docker私有仓库搭建

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

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

4)验证registry:

curl -i -khttps://docker.benet.com

docker私有仓库搭建

Docker客户端配置

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

docker私有仓库搭建

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

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

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

docker私有仓库搭建

(3) 验证docker.benet.com下的registry:

docker私有仓库搭建

注:此项工作之前先将防火墙关闭再或者将5000端口和443端口放行,否则防火墙禁止通行

(4) 使用私有registry步骤:

可以通过docker login命令登录交互式系统输入用户名和密码;或者也可以通过

登录: docker login -ulxftest -p pwd123 -e "lxf@benet.com"https://docker.benet.com实现

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

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

docker私有仓库搭建

发布:上传镜像到本地私有仓库  上传命令 docker push 加完整的镜像

docker push docker.benet.com/centos:centos6

docker私有仓库搭建

从私有仓库pull下来p_w_picpath,查看p_w_picpath 下载命令 docker pull 加完整的镜像名

docker私有仓库搭建

在服务器端的私有仓库:查看私有仓库是否有对应的镜像

docker私有仓库搭建

私有仓库的优缺点:

弊端:

server端可以login到官方的Docker Hub,可以pull,push官方和私有仓库!
client端只能操作搭设好的私有仓库!
私有仓库不能search!

优点:

所有的build,pull,push操作只能在私有仓库的server端操作,降低企业风险!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:docker私有仓库搭建-创新互联
网址分享:http://cqcxhl.cn/article/gidpd.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP