【云原生Docker系列第十篇】搭建本地私有仓库(我问青山何时老,青山问我几时闲)

简介: 【云原生Docker系列第十篇】搭建本地私有仓库(我问青山何时老,青山问我几时闲)

前言


Docker Hub为我们提供了很多官方镜像和个人上传的镜像,我们可以下载机构或个人提供的镜像,也可以上传我们自己的本地镜像,但缺点是:


1.由于网络的原因,从Docker Hub下载和上传镜像速度可能会比较慢;

2.在生产上使用的Docker镜像可能包含我们的代码、配置信息等,不想被外部人员获取,只允许内网的开发人员下载。


为了解决以上问题,Docker 官方提供了一个叫做 registry 的镜像用于搭建本地私有仓库使用。在内部网络措建的Docker。私有仓库可以使内网人员下载、上传都非常快速, 不受外网带宽等因素的影响,同时不在内网的人员也无法下载我们的镜像,并且私有仓库也支持配置仓库认证功能。接下来详细讲解registry私有仓库的搭建过程。


一、搭建本地私有仓库过程


首先下载registry镜像

docker pull registry   #获取镜像


在daemon.json文件中添加私有镜像仓库地址

vim /etc/docker/daemon.json
{
"insecure-registries":["192.168.109.136:5000"],   #注意用逗号结尾,没有逗号会启动失败
   "registry-mirrors": ["https://678ejrsl.mirror.aliyuncs.com"]
}
systemctl restart docker.scrvice    #重启docker服务



运行registry

docker run -d -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行
-v:把宿主机的/data/registry目录绑定到容器/var/lib/rcgistry日录(这个目录是registry容器中存放镜像文件的日录),来实现数据的持久化:
-p:映射端口:访问宿主机的5000端口就访问到reqisLry容器的服务了
--restart=always:这是重启的策略,在容器退出耐总是重启容器
--name reqistry:创建容器命名为reqistry
reqistry:latest:这个是刚才pull下来的镜像


Docker容器的重启策略如下:


no:默认策略,在容器退出时不重启容器


on-failure:在容器非正常退出时(退出状态非0),才会重启容器


on-failure:3:在容器非正常退出时重启容器,最多重启3次


always:在容器退出时总是重启容器


unless-sLopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器


为镜像打标签

#拉取镜像
docker pull nginx
#打标签
docker tag nginx:latest 192.168.109.136:5000/nginx:v1


上传到私有仓库

docker push 192.168.109.136:5000/nginx:v1


网页访问192.168.109.136:5000:/v2/_catalog


列出私有仓库的所有的镜像

[root@localhost ~]# curl http://192.168.109.136:5000/v2/nginx/tags/list
{"name":"nginx","tags":["v1"]}


先删除原有的nginx的镜像,再测试私有仓库下载

docker rmi -f 0e901e68141f
docker pull 192.168.109.136:5000/nginx:v1

目录
相关文章
|
4天前
|
存储 Cloud Native 文件存储
云原生之使用Docker部署home-page个人导航页
【5月更文挑战第4天】云原生之使用Docker部署home-page个人导航页
18 1
|
1天前
|
Cloud Native 测试技术 Linux
云原生之使用Docker部署homer静态主页
【5月更文挑战第7天】云原生之使用Docker部署homer静态主页
9 0
|
2天前
|
监控 Cloud Native 测试技术
云原生之使用Docker部署ServerBee服务器监控工具
【5月更文挑战第6天】云原生之使用Docker部署ServerBee服务器监控工具
11 1
|
4天前
|
Kubernetes Cloud Native 持续交付
【Docker专栏】Kubernetes与Docker:协同构建云原生应用
【5月更文挑战第7天】本文探讨了Docker和Kubernetes如何协同构建和管理云原生应用。Docker提供容器化技术,Kubernetes则负责容器的部署和管理。两者结合实现快速部署、自动扩展和高可用性。通过编写Dockerfile创建镜像,然后在Kubernetes中定义部署和服务进行应用暴露。实战部分展示了如何部署简单Web应用,包括编写Dockerfile、构建镜像、创建Kubernetes部署配置以及暴露服务。Kubernetes还具备自动扩展、滚动更新和健康检查等高级特性,为云原生应用管理提供全面支持。
【Docker专栏】Kubernetes与Docker:协同构建云原生应用
|
6天前
|
存储 Cloud Native 文件存储
云原生之使用Docker部署Nas-Cab个人NAS平台
【5月更文挑战第2天】云原生之使用Docker部署Nas-Cab个人NAS平台
97 1
|
6天前
|
Kubernetes Cloud Native Go
Golang深入浅出之-Go语言中的云原生开发:Kubernetes与Docker
【5月更文挑战第5天】本文探讨了Go语言在云原生开发中的应用,特别是在Kubernetes和Docker中的使用。Docker利用Go语言的性能和跨平台能力编写Dockerfile和构建镜像。Kubernetes,主要由Go语言编写,提供了方便的客户端库与集群交互。文章列举了Dockerfile编写、Kubernetes资源定义和服务发现的常见问题及解决方案,并给出了Go语言构建Docker镜像和与Kubernetes交互的代码示例。通过掌握这些技巧,开发者能更高效地进行云原生应用开发。
48 1
|
7天前
|
Cloud Native 测试技术 Linux
云原生之使用Docker部署RSS阅读器Huntly
【5月更文挑战第1天】云原生之使用Docker部署RSS阅读器Huntly
40 4
|
11天前
7.Docker 私有仓库
7.Docker 私有仓库
|
27天前
|
存储 监控 Cloud Native
云原生之使用Docker部署webos私有云盘
通过以上步骤,你可以在云原生环境中使用Docker部署webOS私有云盘,实现高可用、弹性扩展和简化部署等优势。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
23 4
|
1月前
|
Docker 容器
Docker私有仓库的搭建与Docker仓库UI
Docker私有仓库的搭建与Docker仓库UI
64 0

热门文章

最新文章