docker搭建私有仓库

这篇具有很好参考价值的文章主要介绍了docker搭建私有仓库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

在公司里面,自己的项目在打包成镜像时,可能需要将镜像共享给其它同事使用,如果使用公有仓库共享可能会不安全,且拉取镜像时受网络带宽影响,拉取镜像时会很慢。为解决这些问题,用户可以使用docker官方提供的registry来搭建本地私有仓库。

Registry简介

registry是一种无状态,高扩展性的服务端应用,它可用于存储并使你可以分发你的容器镜像和其它内容。registry是基于Apache License开源协议的,最初由docker官方提供,后捐赠给CNCF。

部署Registry

registry是搭建仓库的应用程序,本身也是需要部署的,在docker中同样以容器的方式运行。

1.拉取registry镜像

docker pull registry

2.运行registry镜像

docker run -d -p 5000:5000 --restart=always --name=my-registry registry
  • docker run   运行容器的基本命令
  • -d   表示在后台执行,如果你想将终端焊住,可以用-it
  • -p 5000:5000   将宿主机的5000端口映射到容器中的5000端口,格式是:-p 宿主机端口:容器端口,registry容器内的默认端口是5000,可以通过环境变量进行修改,稍后会进行介绍
  • –restart=always   设置重启策略为总是重启,即Linux重启后容器也会自动重启
  • –name=my-registry   设置容器的名称为my-registry
  • registry   运行的容器使用的镜像是registry

使用docker ps命令查看容器列表,如下截图,表明仓库就已经搭建好了:

docker搭建私有仓库,docker,容器,运维

列举两个运行registry常用的配置:

  • 挂卷
    docker history查看镜像的层
    docker搭建私有仓库,docker,容器,运维
    可以看到,运行容器时,仓库的镜像是存储在/var/lib/registry下面,使用-v选项将容器中的地址挂载都宿主机中。
docker run -d -p 5000:5000 --restart=always --name=my-registry -v /docker/volume/registry:/var/lib/registry registry

上面的-v /docker/volume/registry:/var/lib/registry表示将容器中的/var/lib/registry挂载到宿主机的/docker/volume/registry目录,这样,仓库中的镜像文件就保存在了宿主机中,方便管理。

  • 自定义容器内的端口
    需要使用到环境变量REGISTRY_HTTP_ADDR
docker run -d -p 5000:5000 --restart=always --name=my-registry -e REGISTRY_HTTP_ADDR=0.0.0.0:5001 registry

上面的-e REGISTRY_HTTP_ADDR=0.0.0.0:5001表示将容器内的端口设置为5001。

3.推送镜像到本地仓库

3.1 拉取测试镜像

docker pull redis

从远程仓库拉取一个redis镜像作为测试镜像。

3.2 给测试镜像打标签

docker tag redis localhost:5000/my-redis

给redis镜像打标签,docker会从localhost:5000/my-redis解析ip和端口为localhost:5000,后续拉取或推送镜像时都会从localhost:5000这个服务器上去拉取或推送。

执行上述命令后,用docker images查看一下镜像列表:

docker搭建私有仓库,docker,容器,运维

3.3 推送镜像

docker push localhost:5000/my-redis

执行上述命令,docker会将my-redis镜像推送到本地为5000端口的镜像仓库中。

使用curl localhost:5000/v2/_catalog命令查看仓库中的镜像

执行推送命令前:

docker搭建私有仓库,docker,容器,运维

执行推送命令后:

docker搭建私有仓库,docker,容器,运维

4.从本地仓库拉取镜像

4.1先删除本地镜像

docker rmi localhost:5000/my-redis

执行上述命令后使用docker images查看本地镜像列表:

docker搭建私有仓库,docker,容器,运维

可以看到本地不存在localhost:5000/my-redis镜像了

4.2从本地仓库拉取镜像

docker pull localhost:5000/my-redis

执行上述命令后使用docker images查看本地镜像列表:

docker搭建私有仓库,docker,容器,运维

拉取成功!

配置Registry可用IP访问

上面的示例中都是通过localhost:5000来访问仓库的,如果通过仓库所在服务器的IP地址来访问,你会发现拉取或推送不了镜像。这是由于registry默认是以HTTPS方式推送的,由于我们没有CA,是没办法通过HTTPS来访问,不过,可以通过配置来取消这个限制。

  • windows
    Docker Desktop->Settings>Docker Engine,在insecure-registries中添加仓库所在服务器的IP和端口
    docker搭建私有仓库,docker,容器,运维
    点击Apply & restart

  • Linux
    在/etc/docker/daemon.json添加insecure-registries配置(Linux安装的docker默认没有daemon.json文件,需要你自己手动创建)。

{
  "insecure-registries": [
    "192.168.xx.xx:5000"
  ]
}

注意:以上配置是在客户端上配置

使用systemctl restart docker命令重启docker,重启后才会生效

测试:
docker搭建私有仓库,docker,容器,运维
推送成功!文章来源地址https://www.toymoban.com/news/detail-778314.html

到了这里,关于docker搭建私有仓库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 1+X 云计算运维与开发(中级)案例实战——搭建harbor私有仓库并实现主从同步

    学而不思则罔,思而不学则殆。 IP 主机名 节点 192.168.200.132/24 master Harbor 仓库节点 192.168.200.133/24 slave Harbor 备份节点 说明:本次实验使用的镜像为k8sallinone,该镜像网络使用net模式,可上外网,且该镜像已安装docker引擎,若使用其他镜像请自行安装docker引擎 准备文件: Dock

    2024年02月07日
    浏览(48)
  • docker本地私有仓库搭建

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 和Maven的管理一样,docker不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库。使用docker私有仓库有许多优点: 一、节省网络宽带,针对于每个镜像,不需要每个人都去中央仓库上面

    2024年02月08日
    浏览(36)
  • docker搭建私有仓库

    在公司里面,自己的项目在打包成镜像时,可能需要将镜像共享给其它同事使用,如果使用公有仓库共享可能会不安全,且拉取镜像时受网络带宽影响,拉取镜像时会很慢。为解决这些问题,用户可以使用docker官方提供的registry来搭建本地私有仓库。 registry是一种无状态,高

    2024年02月03日
    浏览(37)
  • docker搭建本地私有仓库

    有时候使用Docker Hub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,这点跟Maven的管理类似。 使用私有仓库有许多优点: Docker 官方提供了一个搭建私有仓库的镜像 registry (注册服务器),只需把镜像下载下来,运行容器并暴露5000端口

    2024年02月16日
    浏览(39)
  • 搭建Docker私有仓库

    目录 背景介绍 学习目的 学习准备 搭建过程 Docker registry是存储Docker image的仓库 ,运行push、pull、 search 时,是通过Docker daemon与docker registry通信。 Docker Hub(Docker埠,内有大量存储库或叫仓库)是Docker提供的一项服务,用于查找和与您的团队共享容器镜像。它是世界上最大的容

    2024年02月12日
    浏览(37)
  • Docker 搭建本地私有仓库

    有时候使用Docker Hub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,这点跟Maven的管理类似。 使用私有仓库有许多优点: Docker 官方提供了一个搭建私有仓库的镜像 registry (注册服务器),只需把镜像下载下来,运行容器并暴露5000端口

    2024年02月16日
    浏览(40)
  • Docker私有仓库搭建

    Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。 Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 docker-compose 来对它进行部署

    2024年02月22日
    浏览(38)
  • Docker搭建私有镜像仓库

    镜像仓库(Docker Registry)有公共的和私有的两种形式: 公共仓库 :例如Docker官方的Docker Hub,国内也有一些云服务商提供类似于Docker Hub的公开服务,比如网易云镜像服务、DaoCloud镜像服务、阿里云镜像服务等。 除了使用公开仓库外,用户还可以在本地搭建 私有Docker Registry 。企业

    2023年04月16日
    浏览(57)
  • Docker-搭建私有镜像仓库

      镜像仓库(Docker Registry)有公共的和私有的两种形式:    公共仓库 :例如Docker官方的Docker Hub,国内也有一些云服务商提供类似于Docker Hub的公开服务,比如网易云镜像服务、DaoCloud镜像服务、阿里云镜像服务等。   用户在本地搭建 私有Docker Registry 。   因为企业中的

    2024年02月19日
    浏览(48)
  • docker私有镜像仓库搭建

    使用5000端口,需要打开服务器的该端口号 保存后重启docker,否则不生效 以上完成私有仓库配置,检查是否能成功登录 展示 原因是使用的registry镜像版本是不固定的【latest】引起的, 所以在执行的时候,下载的registry镜像文件要固定到某一具体版本,例如:registry:2.7.0

    2024年02月12日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包