首页 > 其他分享 >Docker搭建本地私有仓库

Docker搭建本地私有仓库

时间:2023-02-04 14:45:02浏览次数:37  
标签:容器 5000 私有 仓库 registry 镜像 Docker 搭建

一、搭建本地私有仓库

有时候使用Docker Hub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,这点跟Maven的管理类似。
使用私有仓库有许多优点:

1)节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;
2)提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。

1.1首先下载registry 镜像

docker pull registry

Docker 官方提供了一个搭建私有仓库的镜像 registry (注册服务器),只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了
目前Docker Registry已经升级到了v2,最新版的Docker已不再支持v1。Registry v2使用Go语言编写,在性能和安全性上做了很多优化,重新设计了镜像的存储格式。如果需要安装registry v2,只需下载registry:2.2即可。Docker官方提供的工具docker-registry可以用于构建私有的镜像仓库

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

vim /etc/ docker/daemon.json
{
"insecure-registries": ["192.168.10.10:5000"],
#添加,注意用逗号结尾
"registry-mirrors": ["https://anx0by6z.mirror.aliyuncs.com"]
}
systemctl restart docker.service

1.3运行 registry 容器

docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest  

-itd: 在容器中打开一个伪终端进行交互操作,并在后台运行
-v: 把宿主机的/data/registry目录绑定到容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
在容器中启动私有镜像仓库并将私有仓库的存储目录挂载到宿主机指定目录中,这样做的目的是,如果容器被删除了,存储在容器中的镜像就不会被删掉(默认情况下如果容器被删除,则存放于容器中的镜像也会丢失)
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了
--restart=always: 这是重启的策略,在容器退出时总是重启容器
--name registry: 创建容器命名为registry
registry:latest:这个是刚才pull下来的镜像

Docker容器的重启策略如下:
no:默认策略,在容器退出时不重启容器
on-failure: 在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3 :在容器非正常退出时重启容器,最多重启3次
always: 在容器退出时总是重启容器
unless-stopped: 在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

1.4为镜像打标签

docker tag centos:7 192.168.10.10:5000/centos:v1

如果不对私有仓库命名的话,默认走的是公共仓库(docker hub),所以需要命名镜像。
私有仓库镜像的命名规则:宿主机ip地址:端口号/xxxx(需要更改的名称)
注意:当你对源镜像进行命名后,命名后的镜像名称也视为一个标签,因为id号是相同的。如果当源镜像删除,命名后的镜像依然会存在,因为删除的是一个标签。

1.5上传到私有仓库

docker push 192.168.10.10:5000/centos:v1

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

curl http://192.168.10.10:5000/v2/_catalog

1.7列出私有仓库的centos镜像有哪些tag

curl http://192.168.10.10:5000/v2/centos/tags/list

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

docker rmi -f eeb6ee3f44bd
docker pull 192.168.10.10:5000/centos:v1

标签:容器,5000,私有,仓库,registry,镜像,Docker,搭建
From: https://www.cnblogs.com/feizirui/p/17075748.html

相关文章

  • 什么是Docker、Docker架构 及 Docker 安装卸载
    (目录)初识Docker1.什么是Docker微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生......
  • Docker的基本镜像操作、容器操作 及 数据卷挂载管理
    (目录)Docker的基本操作1.镜像操作1.1.镜像名称首先来看下镜像的名称组成:镜像名称一般分两部分组成:[repository]:[tag]。在没有指定tag时,默认是latest,代表最新版本......
  • 隆重介绍:Buddy全新Docker CLI操作
    自2013年推出以来,Docker一直是软件开发人员的福音。一个隔离独立的测试环境,一个在整个团队中共享工具和依赖项的独立运行时且快速与易用,有保证的Kubernetes可扩展性——所有......
  • Docker面试题
    常规题:1.  Docker 和虚拟机有啥不同?答:Docker 是轻量级的沙盒,在其中运行的只是应用,虚拟机里面还有额外的系统。2.    Docker安全么?答:Docker 利用了Linux  内......
  • 如何正确使用docker run -i -t -d 参数
    如何正确使用dockerrun-i-t-d参数在使用dockerrun命令时,我们经常会使用到-i、-t和-d参数,那么这几个参数的作用究竟是什么呢,这篇文章简单讲一下。选项说明官方文档......
  • 998-搭建一台私用服务器全过程
    服务器U盘安装Ubuntu制作一个Ubuntu安装盘DELL服务器F11进入BOOTManager,选择U盘启动按照安装引导安装即可安装过程中两点分区,根据服务器的用途考虑给多少空间,我这里默认创......
  • docker 启动 jenkins 挂载目录权限问题 Permission denied
    通过docker挂载目录的jenkins,查看jenkins日志发现存在一些文件无法写入或者​​Permissiondenied​​这样的异常错误,基本可以判定是文件所有权问题。比如你宿主机挂......
  • MySQL之主从复制集群搭建
    简述这篇文章主要记录使用​​dockercompose​​​搭建​​MySQL​​主从复制集群搭建,方便后续进行本地测试开发。这篇文章主要介绍一主一从的搭建过程。主从架构,可以缓解M......
  • 【PHP 随记】—— laravel 项目环境搭建
    文章目录​​1、安装laravel以及phpstorm开发插件​​​​2、配置虚拟主机与绑定hosts文件​​​​①配置虚拟主机​​​​②hosts绑定​​​​③验证​​​​3、......
  • 云原生之使用docker部署NTP时间服务器
    (云原生之使用docker部署NTP时间服务器)一、chrony介绍chrony是网络时间协议(NTP)的通用实现。它可以将系统时钟与NTP服务器、参考时钟(例如GPS接收器)以及使用手表......