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

Docker 本地私有仓库

时间:2023-08-24 15:14:41浏览次数:38  
标签:5000 私有 仓库 registry 镜像 Docker docker

目录

一、本地私有仓库

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

使用私有仓库有许多优点:

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

Docker 官方提供了一个搭建私有仓库的镜像 registry (注册服务器),只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了

目前Docker Registry已经升级到了v2,最新版的Docker已不再支持v1。Registry v2使用Go语言编写,在性能和安全性上做了很多优化,重新设计了镜像的存储格式。如果需要安装registry v2,只需下载registry:2.2即可。Docker官方提供的工具docker-registry可以用于构建私有的镜像仓库

二、搭建本地私有仓库

1. 下载 registry 镜像

docker pull registry

image-20230824143918283

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

vim /etc/docker/daemon.json

{
"insecure-registries": ["192.168.23.35:5000"],
}

systemctl restart docker.service

image-20230824144224899

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: 这个标志将本地的/data/registry目录挂载到容器内的/var/lib/registry目录,用于持久化存储Registry的数据。
  • -p 5000:5000: 这个标志将容器的5000端口映射到主机的5000端口,这样可以通过主机的IP地址和5000端口访问Registry服务。
  • --restart=always: 这个标志指定容器在启动后发生异常情况时总是自动重新启动。
  • --name registry: 这个标志为容器指定了一个名称,即"registry"。
  • registry:latest: 这是要运行的Docker Registry镜像的名称和标签,即使用最新的版本。

以上命令会在后台启动一个基于最新版本的Docker Registry容器,并将主机的5000端口映射到容器的5000端口。同时,Registry的数据将持久化保存在主机上的/data/registry目录中,并且容器会在发生异常时自动重启。

image-20230824144632461

4. 镜像打新标签

先获取一个centos7镜像

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

如果不对私有仓库命名的话,默认走的是公共仓库(docker hub),所以需要命名镜像。

私有仓库镜像的命名规则:宿主机ip地址:端口号/xxxx(需要更改的名称)

注意:当你对源镜像进行命名后,命名后的镜像名称也视为一个标签,因为id号是相同的。如果当源镜像删除,命名后的镜像依然会存在,因为删除的是一个标签。

image-20230824144932539

5. 上传到私有仓库

docker push 192.168.23.35:5000/centos:v1

image-20230824145131126

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

curl http://192.168.23.35:5000/v2/_catalog

image-20230824145409527

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

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

image-20230824145532043

8. 私有仓库下载镜像

docker rmi centos:7 192.168.23.35:5000/centos:v1
docker pull 192.168.23.35:5000/centos:v1

image-20230824145834049

标签:5000,私有,仓库,registry,镜像,Docker,docker
From: https://www.cnblogs.com/m-zhuang/p/17654164.html

相关文章

  • adocker yml如何操作才能让搭建的redis集群能通过外网访问ip+端口的集群所有信息
    要在Docker中操作以便通过外部网络访问Redis集群的IP和端口,您需要执行以下操作:首先,您需要创建一个DockerComposeYAML文件(docker-compose.yml),用于定义Redis集群的配置。在此文件中,您可以指定每个Redis节点的配置和网络设置。以下是一个示例配置:version:'3'services:redis1:......
  • docker安装elasticsearch和kibana
    下载镜像和启动镜像:dockersearchelasticsearchdockerpullnshou/elasticsearch-kibanadockerrun-d-p9200:9200-p9300:9300-p5601:5601--nameeskibananshou/elasticsearch-kibana访问:http://127.0.0.1:9200/访问:http://127.0.0.1:5601/参考:http://www.51gjie.com......
  • Docker 安装 OpenResty教程
    Docker部署1.拉取镜像PSC:\Users\Administrator>dockerpullopenresty/openresty2.启动openrestyPSC:\Users\Administrator>dockerrun-d--nameopenresty-p9000:80openresty/openresty3.创建挂载目录PSC:\Users\Administrator>mkdir-p/docker/openre......
  • 【问题解决】容器部署MySQL的数据在docker commit导出的镜像中丢失
    问题起因最近公司有个甲方项目参加竞赛,要求在(基于kubeflow/arena)平台上部置应用,可以将MySQL打包在应用一起,也可以分开部署,没有提供volume相关的支持。大意是可以把初始好的数据直接拿到平台上。经过本人在Linux虚机中启动MySQL容器导入数据再dockercommit出镜像部署到平台......
  • Docker-Swarm启动服务一直处于New状态
    一、情况描述​ 近期有个项目的开发环境需要迁移nas挂载盘,需要把开发环境的服务停止,待迁移完成后重启服务。​ 该环境使用的docker-swarm启动服务,之前考虑的是swarm是docker原生支持的,启动方便,命令也较为简单,能够满足使用需求。待更换nas盘完成,通知我启动服务。​ 按照正常......
  • docker-swarm的负载均衡(LB)策略-dnsrr与vip
    在DockerSwarm中,DNSRR(DNSRoundRobin)和VIP(VirtualIP)是两种常见的负载均衡策略,它们各自有不同的作用和特点。DNSRR(DNSRoundRobin)负载均衡策略:作用:DNSRR策略通过对域名解析返回多个后端服务的IP地址来实现负载均衡。每个请求都会被依次分发到这些IP地址中的一个。特点:简单......
  • docker 常用命令--todo....
    docker常用命令docker设置开机自启docker-v启动dockersystemctlstartdocker查看docker状态systemctlstatusdockerdocker设置开机自启systemctlenbaledocker修改docker仓库的地址---------------------------基础设置--------------------------开机自启su......
  • Docker 安装 Nginx 教程
    Docker安装1.拉取镜像PSC:\Users\Administrator>dockerpullnginx2.创建挂载目录PSC:\Users\Administrator>mkdir-p/docker/nginx/confPSC:\Users\Administrator>mkdir-p/docker/nginx/logsPSC:\Users\Administrator>mkdir-p/docker/nginx/con......
  • linux服务器docker compose的使用步骤
    之前说了docker的安装,dockercompose的安装,还比较了dockerfile和dockercompose的区别,那么dockercompose的实际应用是怎么样呢?记录下我的实操步骤1、服务器上新建目录,目录情况如下,我的data目录是挂载到数据盘的/data/docker_config/nginx//存放nginx的配置文件/dat......
  • docker 安装【菜鸟级教程】
    前言1.安装及环境1.1.Linux安装1.2.Windows安装2.初识Docker2.1.进入dockerhttps://www.cnblogs.com/xhyan/p/6593075.2.2.命令行基本操作安装依赖yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2Docker实例Docker安装CentosCentOS镜像库地址:https:/......