news 2026/4/3 4:29:40

私有仓库的构建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
私有仓库的构建

一、私有仓库服务器(registry)的构建

1、下载registry镜像

docker pull registry

2、运行私有仓库,类似于当地的Docker hub

docker run -d \ -p 5000:5000 \ --restart=always \ --name registry \ -v /mnt/registry:/var/lib/registry \ registry:2 ​ 解释: -d:表示在后台运行该容器; -p 5000:5000:表示将私有镜像仓库容器内部默认暴露的 5000 端口映射到宿主机的 5000 端口 --restart=always:表示容器启动后自动启动本地私有镜像仓库(任何时候退出时都会进行重启) -v /mnt/registry:/var/lib/registry:表示将容器内的默认存储位置 /var/lib/registry 中的数据挂载到宿主机的 /mnt/registry 目录下

3、创建一个新镜像,安装ifconfig命令

docker run -itd nginx/nginx:1.2 -p 3389:80 bash docker exec -it 容器ID bash apt update apt-get install nettools exit docker commit -m="ifconfig" -a="chp" 容器id 新名称:版本

4、使用curl验证私有仓库有什么镜像

curl -XGET http://localhost:5000/v2/_catalog

5、将新镜像修改为符合私有镜像贵的的tag标签(默认推送到远程的镜像仓库)

docker tag nginx/nginx:1.2 localhost:5000/mynginx

6、修改daemo.json文件,使私有仓库可以支持http。如前方有数据,需在前方添加,

vi /etc/docker/daemo.json "insecure- registries": ["localhost:5000"]

7、推送镜像

docker push localhost:5000/mynginx:1.2

8、curl验证私有仓库有什么镜像

curl -XGET http://localhost:5000/v2/_catalog http://localhost:5000/v2/mynginx/tags/list

9、pull到本地并运行

docker pull localhost:5000/mynginx:1.2

二、配置私有仓库认证

1、安装htpasswd工具

sudo yum install -y httpd-tools

2、创建认证文件

# 创建存储目录 mkdir -p /opt/docker-registry/{auth,data,certs} ​ # 生成认证文件(替换username和password为你的凭证) htpasswd -Bbn 用户名 密码 > /opt/docker-registry/auth/htpasswd ​ 例:htpasswd -Bbn zhang 123456 > /opt/docker-registry/auth/htpasswd ​ # 查看生成的认证文件 cat /opt/docker-registry/auth/htpasswd

3、创建ssl证书

1.创建 OpenSSL 配置文件: cat > /opt/docker-registry/certs/req.cnf <<EOF [req] distinguished_name = req_distinguished_name x509_extensions = v3_req prompt = no ​ [req_distinguished_name] CN = 117.72.59.113 ​ [v3_req] keyUsage = keyEncipherment, dataEncipherment, digitalSignature extendedKeyUsage = serverAuth subjectAltName = @alt_names ​ [alt_names] IP.1 = 117.72.59.113 EOF

②生成证书

openssl req -newkey rsa:4096 -nodes -sha256 \ -keyout /opt/docker-registry/certs/domain.key \ -x509 -days 365 -out /opt/docker-registry/certs/domain.crt \ -config /opt/docker-registry/certs/req.cnf

③验证生成的证书

openssl x509 -in /opt/docker-registry/certs/domain.crt -text -noout

④配置 Docker 信任证书

mkdir -p /etc/docker/certs.d/117.72.59.113:5000/ cp /opt/docker-registry/certs/domain.crt /etc/docker/certs.d/117.72.59.113:5000/ca.crt systemctl restart docker

4、启动Registry容器

docker run -d -p 5000:5000 --restart=always --name registry \ -v /opt/docker-registry/data:/var/lib/registry \ -v /opt/docker-registry/auth:/auth \ -v /opt/docker-registry/certs:/certs \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ -e REGISTRY_AUTH=htpasswd \ -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ registry:2

5、配置客户端访问

①在服务器本机测试

# 登录Registry(使用之前设置的用户名密码) docker login localhost:5000 ​ # 测试推送镜像 docker pull alpine docker tag alpine localhost:5000/my-alpine docker push localhost:5000/my-alpine ​ # 查看仓库内容 curl --cacert /opt/docker-registry/certs/domain.crt -u zhang:123456 https://117.72.59.113:5000/v2/_catalog

② 在其他机器访问

  1. 将证书复制到客户端机器:

    scp /opt/docker-registry/certs/domain.crt 客户端用户名@客户端IP:/tmp/
  2. 在客户端机器上:

    # 创建证书目录
    sudo mkdir -p /etc/docker/certs.d/你的服务器IP:5000/

    # 复制证书
    sudo cp /tmp/domain.crt /etc/docker/certs.d/你的服务器IP:5000/ca.crt

    # 重启Docker
    sudo systemctl restart docker

    # 登录Registry
    docker login 你的服务器IP:5000

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/25 19:16:10

机器人与互联网测试工作选择

延续行业优势深耕,还是转向通用领域拓展 下面从岗位匹配度、技能要求、职业前景等维度对比分析,帮你做出合适选择: 机器人公司:延续行业积累,竞争力突出 岗位适配性高:你熟悉的调度系统测试,本身就是机器人领域的核心测试模块,要应对多机器人协作、路径冲突、状态同步…

作者头像 李华
网站建设 2026/3/21 2:13:21

从Oracle迁移到MySQL,我踩过的10个大坑(附解决方案)

从Oracle迁移到MySQL&#xff0c;我踩过的10个大坑&#xff08;附解决方案&#xff09;坑1&#xff1a;自增主键居然不连续&#xff1f;坑2&#xff1a;分页查询性能暴跌坑3&#xff1a;大小写敏感搞崩了SQL坑4&#xff1a;空字符串 vs NULL 的语义差异坑5&#xff1a;日期时间…

作者头像 李华
网站建设 2026/3/27 2:14:35

MySQL 数据库优化:用最简单但最有效的方法搞懂它

欢迎关注我的公众号「DevOps和k8s全栈技术」&#xff0c;进公众号【服务】栏&#xff0c;可以看到技术群&#xff0c;点击即可加入学习交流群。↓↓↓关注公众号&#xff0c;免费学技术~如有问题欢迎添加作者微信&#x1f449;&#xff1a;15011572657在软件开发的生命周期里&a…

作者头像 李华
网站建设 2026/4/1 11:01:51

Kotaemon问答置信度打分原理与应用场景

Kotaemon问答置信度打分原理与应用场景 在企业服务智能化浪潮中&#xff0c;一个看似简单的AI问答背后&#xff0c;往往潜藏着巨大的风险。当HR员工询问“病假最长能休多久”时&#xff0c;系统若基于过时政策生成错误答案&#xff0c;可能直接引发劳动纠纷&#xff1b;当客服…

作者头像 李华
网站建设 2026/3/30 5:41:04

Kotaemon在物流运输咨询中的智能应答实践

Kotaemon在物流运输咨询中的智能应答实践 在现代物流行业&#xff0c;客户的问题早已不再是简单的“什么时候发货”。一个典型的咨询可能是&#xff1a;“我有一个含锂电池的2公斤包裹要从深圳发往慕尼黑&#xff0c;走空运的话清关会不会有问题&#xff1f;最快几天能到&#…

作者头像 李华
网站建设 2026/3/23 8:36:13

YOLOv12图像去雾革命:AOD-PONO-Net去雾检测一体化实战指南

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有! 文章目录 YOLOv12图像去雾革命:AOD-PONO-Net去雾检测一体化实战指南 技术突破与性能验证 AOD-PONO-Net核心技术解析 物理模型引导的去雾架构 YOLOv12与AOD-PONO-Ne…

作者头像 李华