docker 私有 repository
为什么需要私有仓库?
首先假如公司内部有两台以上的服务器,使用docker管理应用程序,我在A服务器上创建了一个.net core 的镜像,需要在B服务器上共享这个镜像,怎么办?当然不能拷贝一份代码在去B服务器创建上去创建,服务器少,以及版本迭代少的拷贝没问题,如果服务器多了,版本迭代多了,每次都拷贝粘贴不得把人累死,创建私有就不一样了,一个命令即可。
其次就是内网且多服务器的情况下,就必须有个私有仓库了。
创建私有仓库
1、拉取 registry 镜像 :
docker pull registry
2、运行容器:
docker run -d -v /repositories:/var/lib/registry -e REGISTRY_STORAGE_DELETE_ENABLED=true -p 5000:5000 --restart=always --privileged=true --name registry registry
// -e REGISTRY_STORAGE_DELETE_ENABLED=true 设置仓库是可以删除的
看运行是否成功,浏览器访问:http://192.168.0.109:5000/v2
3、提交一个镜像
首先修改文件 /etc/docker/daemon.json (是个json文件,如果没有就创建)
添加 "insecure-registries":["192.168.0.100:5000"] --如果不添加这段,只能用https的方式 ,(insecure:不安全的)
docker image tag elasticsearch:6.7.0 192.168.0.100:5000/elasticsearch --打一个tag
docker push 192.168.0.100:5000/elasticsearch
4、在其他机器拉取镜像,同样需要开启不安全的仓库
docker pull 192.168.0.100:5000/elasticsearch
5、查询私有仓库有哪些镜像
GET http://192.168.0.100:5000/v2/_catalog // 查询镜像列表
GET http://192.168.0.100:5000/v2/{image_name}/tags/list // 查询单个镜像的tags
HEAD http://192.168.0.100:5000/v2/{image_name}/manifests/1.0.0 // 查询单个镜像的Digest,说是那么说,用postman查出来不对,
docker inspect {image_name} // 查询镜像详细信息,是一个json,RepoDigests 项 就是 image 的 digest
DELETE http://192.168.0.100:5000/v2/{image_name}/manifests/{Digest} // 删除镜像
api地址:https://github.com/docker/distribution/blob/master/docs/spec/api.md
有时候要用到域名,公司内部搭一个dns服务器,非docker 仓库的linux需要修改dns的地址,指向dns服务器来找到 registry.xxx.com ,附上修改方法:
--打开配置文件
sudo vim /etc/resolv.conf
--添加 nameserver dns服务器的地址
nameserver 192.168.0.101
esc -> :wq // (保存)
立即生效,ping registry.xx.com 就可以通了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫