Docker搭建私有仓库的实现步骤

 更新时间:2024年03月31日 08:31:27   作者:平时不搬砖  
因为dockerHub公共仓库是外网的,所以访问就特别慢,所以一般公司都会搭建私人的镜像仓库来保存镜像,本文主要介绍了Docker搭建私有仓库的实现步骤,具有一定的参考价值,感兴趣的可以了解一下

背景介绍

Docker registry是存储Docker image的仓库,运行push、pull、 search 时,是通过Docker daemon与docker registry通信。

Docker Hub(Docker埠,内有大量存储库或叫仓库)是Docker提供的一项服务,用于查找和与您的团队共享容器镜像。它是世界上最大的容器镜像存储库,拥有一系列内容源,包括容器社区开发人员、开放源代码项目和独立软件供应商(ISV)在容器中构建和分发代码。

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

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

因为dockerHub公共仓库是外网的,所以访问就特别慢,所以一般公司都会搭建私人的镜像仓库来保存镜像。一台服务上用docker开启一个私有仓库的镜像,后续其他的docket服务器都将镜像保存在这个私有的仓库

1 设置私有镜像仓库

# 下载镜像
docker pull registry
# 启动镜像
docker run -itd -v /home/wuzhibin/docker/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest

-itd:在容器中打开一个伪终端进行交互操作,并在后台运行
-v:把宿主机的/home/wuzhibin/docker/registry目录绑定到容器/var/lib/registry来实现数据的持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了
--restart=always: 这是重启的策略,在容器退出时总是重启容器
--name registry: 创建容器命名为registry

拉起官方镜像,在一台搭建镜像仓库的容器,并将容器的数据盘映射本地数据持久化,最终的目的是将设置为私有的镜像仓库保存镜像。

2 添加镜像仓库

# 在其他的服务上设置的镜像仓库地址为私仓地址
vim /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.1.200:5000"],
  "registry-mirrors":  ["https://zh7ton3p.mirror.aliyuncs.com"]
}

systemctl daemon-reload
systemctl restart docker

# insecure-registries 为上一步开启的私有仓库地址
# registry-mirrors 为阿里云镜像加速地址
# 修改docker配置之后一定要重新启动docker 

# 推送镜像到私仓
# 拉取nginx 测试镜像
docker pull nginx 
# 打上私仓标签,如果想推送到私仓必须打上私仓的标签,应该为默认是推送到公共仓库的。
docker tag mginx:latest 192.168.1.200:500/nginx:v1
# 查看镜像名
docker images
# 推送私仓,192.168.1.200:5000/nginx:v1为上一步打上镜像名的镜像
docker push 192.168.1.200:5000/nginx:v1
# 查看私仓镜像仓库
curl http://192.168.1.200:5000/v2/_catalog
# 结果为{"repositories":["nginx"]}表面
# 查看私仓的镜像版本
curl http://192.168.118.16:5000/v2/ubuntu/tags/list

 在其他的服务上设置的镜像仓库地址为私仓地址就可以通过私仓拉起分发布镜像了, 拉取私仓的镜像不仅仅要设置镜像仓库的地址,另外镜像上也要打上私仓的标签,不能默认会从公共仓库拉起和发布

3 拉私仓的镜像

# 拉取私仓的镜像, 其他的服务器也需要和上一步一样添加docker配置中添加私仓地址
# 不加私仓地址会默认从公共仓去拉起,
docker pull 192.168.1.200:5000/nginx:v1
# 查看拉起的镜像
docker images

到此这篇关于Docker搭建私有仓库的文章就介绍到这了,更多相关Docker搭建私有仓库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Docker run的选项以覆盖Dockerfile中的设置详解

    使用Docker run的选项以覆盖Dockerfile中的设置详解

    今天小编就为大家分享一篇关于使用Docker run的选项以覆盖Dockerfile中的设置详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • docker运行nginx绑定配置文件失败原因以及问题解决

    docker运行nginx绑定配置文件失败原因以及问题解决

    最近工作中在使用docker运行nginx的时候遇到了些问题,下面分享给大家,这篇文章主要给大家介绍了关于docker运行nginx绑定配置文件失败原因以及问题解决的相关资料,需要的朋友可以参考下
    2023-02-02
  • Docker内如何访问本机(宿主机)的具体方法

    Docker内如何访问本机(宿主机)的具体方法

    这篇文章主要介绍了Docker内如何访问本机(宿主机)的具体方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • 云原生之docker命令详解

    云原生之docker命令详解

    Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,本文就给大家介绍了云原生中的docker命令
    2023-06-06
  • Docker安装MySQL并使用Navicat连接的使用示例

    Docker安装MySQL并使用Navicat连接的使用示例

    在Docker里运行MySQL的方式还是很方便的,本文主要介绍了Docker安装MySQL并使用Navicat连接的使用示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 详解修改docker时区及docker常用命令

    详解修改docker时区及docker常用命令

    这篇文章主要介绍了详解修改docker时区及docker常用命令,非常具有实用价值,需要的朋友可以参考下。
    2016-12-12
  • jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明

    jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明

    今天小编就为大家分享一篇关于jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • 解决Docker Image镜像无法删除问题的方法

    解决Docker Image镜像无法删除问题的方法

    这篇文章主要给大家介绍了关于如何解决Docker Image镜像无法删除问题的方法,文中通过示例代码将解决的方法介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • 详解Docker创建支持ssh服务的容器和镜像

    详解Docker创建支持ssh服务的容器和镜像

    本篇文章主要介绍了详解Docker创建支持ssh服务的容器和镜像,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Docker跨服务器通信Overlay解决方案(上)之 Consul单实例

    Docker跨服务器通信Overlay解决方案(上)之 Consul单实例

    这篇文章主要介绍了Docker跨服务器通信Overlay解决方案(上)之 Consul单实例,本文通过场景分析实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12

最新评论