Doker搭建私有镜像库
0x01 Doker私有镜像库服务端
1.1 拉取registry
docker pull registry
1.2 创建容器
命令示例:
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
注:--restart=always: 这个参数表示如果容器异常退出,则会自动重启
1.3 测试Dokcer镜像仓库
本地访问:
curl http://127.0.0.1:5000/v2/_catalog
远程访问地址
http://服务器IP
0x02 测试镜像仓库
2.1 修改镜像源
2.1.1 修改下镜像源
vim /etc/docker/daemon.json
{
"registry-mirrors": [ "你的仓库地址:端口"]
}
2.1.2 重启docker服务
systemctl restart docker
2.2 为镜像打标签
命令说明
格式说明:Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] :lastest
docker tag centos7:latest 172.18.62.55:5000/centos7:v1
// centos7:latest这是源镜像,也是刚才pull下来的镜像文件;
// 172.18.62.55:5000/centos7:v1,这是目标镜像,也是registry私有镜像服务器的IP地址和端口;
2.3 上传镜像到仓库
docker push 172.18.62.55:5000/centos7:v1
The push refers to repository [172.18.62.55:5000/centos7:v1]
Get https://172.18.62.55:5000/v2/: http: server gave HTTP response to HTTPS client
注意了,这是报错了,需要https的方法才能上传,我们可以修改下daemon.json来解决:
vim /etc/docker/daemon.json
{
"registry-mirrors":[ "https://registry.docker-cn.com"],
"insecure-registries": [ "你的仓库地址:端口"]
}
添加私有镜像服务器的地址,注意书写格式为json,有严格的书写要求,然后重启docker服务:
systemctl restart docker
在次上传可以看到没问题 了:
docker push 172.18.18.90:5000/centos7:v1
The push refers to repository [172.18.18.90:5000/centos7]
c5183829c43c: Pushed
v1: digest: sha256:c7b0a24019b0e6eda714ec0fa137ad42bc44a754d9cea17d14fba3a80ccc1ee4 size: 527
2.4 下载镜像
以上传的centos7:v1的镜像为例,如下:
docker pull 172.18.18.90:5000/centos7:v1
2.5 其他信息
2.5.1 列出所有镜像
curl http://172.18.18.90:5000/v2/_catalog
预期的结果例如:
{"repositories":["centos7"]}
2.5.2 列出centos7镜像有哪些tag
curl http://172.18.18.90:5000/v2/busybox/tags/list
预期的结果例如:
{"name":"busybox","tags":["v1"]}
分类:
Docker
标签:
docker仓库
, docker registry
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· 官方的 MCP C# SDK:csharp-sdk
· 一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
· 提示词工程师自白:我如何用一个技巧解放自己的生产力
· 一文搞懂MCP协议与Function Call的区别
· 如何不购买域名在云服务器上搭建HTTPS服务