千家信息网

docker私有仓库搭建

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,http://xiaorenwutest.blog.51cto.comdocker中部署私有仓库前言:在docker中如果要使用镜像必须从本地或者从docker Hup公共仓库中下载镜像,但是如果需要
千家信息网最后更新 2026年10月31日docker私有仓库搭建

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

docker中部署私有仓库

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

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

实验环境:

两台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)安装依赖软件包:

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

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

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

主机名、ip地址:

(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的时候不用删除

(3) 生成根证书

执行如下图:

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

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

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

#mkdir /etc/pki/CA/ssl

#cd /etc/pki/CA/ssl

接下来为nginx生成秘钥

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

查看nginx服务器的密钥

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

执行

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

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

执行

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

输出内容:nginx的证书信息

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

查看nginx的证书

查看生成的证书

安装,配置,运行nginx

(1) 添加组和用户

编译,安装nginx:

--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配置文件

语法检测:是否ok

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

2) 配置,运行Docker

(1) 停止docker

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

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

(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

(4) 启动docker

3)运行私有仓库容器

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

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

运行私有仓库容器

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

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

4)验证registry:

curl -i -k https://docker.benet.com

Docker客户端配置

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

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

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

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

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

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

(4) 使用私有registry步骤:

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

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

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

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

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

docker push docker.benet.com/centos:centos6

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

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

私有仓库的优缺点:

弊端:

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

优点:

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


仓库 私有 服务 镜像 服务器 证书 生成 模块 运行 主机 文件 环境 端口 输入 内容 命令 地址 官方 密钥 目录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海卓越科技互联网 重生之互联网科技帝国 互联网金融监管科技数据 科技创新与互联网经济 互联网科技小贷 期待互联网科技 互联网前沿科技 云创客互联网科技公司 中盈科技互联网信息有限公司 晓花互联网科技有限公司网址 杭州壁岐互联网科技有限公司 银川新华互联网科技学校联系电话 用友工业互联网科技发展 互联网数据科技专业 南通创西澳互联网科技有限公司 黑云互联网科技有限公司 全球科技与互联网公司市值变化 绵阳真晨互联网科技有限公司 互联网科技品牌 银川新华互联网科技学校招聘 为想互联网科技怎么样 工业互联网科技新基建 广西互联网科技公司 滨湖区互联网智能科技产品供应 杭州壁岐互联网科技有限公司 深圳市优智互联网科技有限公司 米聚互联网科技南京有限公司排面 南京一网一红互联网科技有限公司 张家口科技产业互联网平台 广州全民伙伴互联网科技有限公司
0