Docker系列---【搭建docker私有仓库】
前提:会使用Dockerfile构建镜像,不会的参考https://www.cnblogs.com/hujunwei/p/15823522.html
1.拉取私服镜像
docker pull registry
2.启动docker私服
docker run -di --name=registry ‐p 5000:5000 registry
3.打开浏览器 输入地址"http://192.168.26.130:5000/v2/_catalog"看到 {"repositories":[]} 表示私有仓库搭建成功,并且内容为空。
4.修改daemon.json,此步用于让 docker信任私有仓库地址
vi /etc/docker/daemon.json
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"], "insecure-registries": ["192.168.26.130:5000"] }
5.重启docker服务
systemctl restart docker
6.重启registry
docker start registry
7.镜像上传至私有仓库
#标记此镜像jdk1.8_hjw为私有仓库的镜像,这个镜像和jdk1.8的镜像镜像id是一样的
docker tag jdk1.8_hjw 192.168.26.130:5000/jdk1.8
#上传标记的镜像
docker push 192.168.184.141:5000/jdk1.8
8.这时候访问"http://192.168.26.130:5000/v2/_catalog",就可以看到上传的镜像。
9.从私有仓库下载镜像,此时在另一台装有docker的服务器上,重复4,5步骤,然后下载镜像
docker pull 192.168.26.130:5000/jdk1.8
扩展:
第一台配置
[root@docker ~]# docker pull registry
#下载registry镜像
[root@docker ~]# docker run -tid --name registry --restart=always -p 5000:5000 - v /data/registry:/var/lib/registry registry
#运行该镜像,各个选项含义如下:
# -tid:以后台持久运行,并分配一个可交互的为终端
# --name registry :给容器定义一个名字
# --restart=always:该容器可以随着docker服务的启动而启动
# -p:将容器的端口映射到宿主机,冒号前面是宿主机的端口,冒号后面是容器的端口,registry的默认端 口是5000
# -v:将宿主机的目录挂载到容器中,冒号前面是宿主机的目录,冒号后面是容器中的目录
[root@docker ~]# docker images
#查看当前的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0f3e07c0138f 2 weeks ago 220MB
registry latest f32a97de94e1 7 months ago 25.8MB
[root@docker ~]# docker tag centos:latest 192.168.20.7:5000/centos:latest
#更改镜像名称,以便符合私有仓库名称规范
#注:私有仓库镜像的命名规则:192.168.20.7:5000/XXX(宿主机的IP:5000端口/镜像名称)
[root@docker ~]# vim /usr/lib/systemd/system/docker.service
#更改docker的配置文 件,以便指定私有仓库 ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20.7:5000
#定位到上面那行,在后面添加“--insecure-registry”并指定私有仓库的IP及端口,然后保存退出即可
[root@docker ~]# systemctl daemon-reload
#重载配置文件
[root@docker ~]# systemctl restart docker
#重启docker服务
[root@docker ~]# docker push 192.168.20.7:5000/centos:latest
#上传镜像至私有仓 库
[root@docker ~]# curl 192.168.20.7:5000/v2/_catalog
#查看私有仓库中的镜像
{"repositories":["centos"]}
[root@docker ~]# curl 192.168.20.7:5000/v2/centos/tags/list
#查看镜像的详细信息
{"name":"centos","tags":["latest"]}
第二台配置
[root@docker02 ~]# vim /usr/lib/systemd/system/docker.service
#编辑主配置文件 ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20.7:5000
#定位到上面那行,添加“--insecure-registry”指定私有仓库的IP及参数 #添加完成后,保存退出即可
[root@docker02 ~]# systemctl daemon-reload
#重载配置文件
[root@docker02 ~]# systemctl restart docker
#重启docker服务
[root@docker02 ~]# docker pull 192.168.20.7:5000/centos:latest
#下载私有仓库的中的镜像
[root@docker02 ~]# docker images
#确认下载的镜像
愿你走出半生,归来仍是少年!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)