Docker私有仓库搭建与界面化管理

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

一、关于Registry

官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。

但是有时候我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像。这个可以通过开源软件Registry来达成目的。

 Registry在github上有两份代码:老代码库和新代码库。老代码是采用python编写的,存在pull和push的性能问题,出到0.9.1版本之后就标志为deprecated,不再继续开发。

 从2.0版本开始就到在新代码库进行开发,新代码库是采用go语言编写,修改了镜像id的生成算法、registry上镜像的保存结构,大大优化了pull和push镜像的效率。

 官方在Docker hub上提供了registry的镜像,我们可以直接使用该registry镜像来构建一个容器,搭建我们自己的私有仓库服务。


二、搭建Registry

首先搜索并拉取镜像
docker search registry    # 建议先搜索一下,可以看一下相关的镜像,说不定哪天就有更好的镜像了
docker pull registry    # 标签可以不加,因为当前最新就是v2

新建一个opt/tangxl-registry文件夹

在tangxl-registry新建一个auth文件夹

设置密码 docker run --rm --entrypoint htpasswd httpd:alpine -Bbn 账号 密码 > auth/nginx.htpasswd

  运行一个registry容器

Docker私有仓库搭建与界面化管理,docker,容器,运维

docker run -d \            # 后台运行
--name registry-srv \    # 指定容器名
--restart=always \        # 设置自动启动
-p 5000:5000 \            # 端口映射宿主机,通过宿主机地址访问
-v /opt/zwx-registry:/var/lib/registry \     # 把镜像存储目录挂载到本地,方便管理和持久化
-v /opt/zwx-registry/srv-config.yml:/etc/docker/registry/config.yml \    # 把配置文件挂载到本地,方便修改和保存
registry

docker run -itd -p 5000:5000 --restart=always -v ~/opt/tangxl-registry:/var/lib/registry:ro -v ~/opt/tangxl-registry:/etc/docker/registry:ro  --name registry registry

Docker私有仓库搭建与界面化管理,docker,容器,运维

tangxl-registry新建config.yml文件

  config.yml内容如下

  标红delete参数设置为true,是为了让仓库支持删除功能。默认没有这个参数,也就是不能删除仓库镜像。

version: 0.1

log:

  fields:

    service: registry

storage:

  delete:

    enabled: true

  cache:

    blobdescriptor: inmemory

  filesystem:

    rootdirectory: /var/lib/registry

auth:

  htpasswd:

    realm: basic-realm

    path: /etc/docker/registry/auth/nginx.htpasswd

http:

  addr: :5000

  headers:

    X-Content-Type-Options: [nosniff]

health:

  storagedriver:

    enabled: true

    interval: 10s

    threshold: 3

Docker私有仓库搭建与界面化管理,docker,容器,运维

Docker私有仓库搭建与界面化管理,docker,容器,运维

  注册https协议(否则push安全认证过不去)

  需要通过本地仓库下载镜像,均需要配置  

vim /etc/docker/daemon.json        # 默认无此文件,需自行添加,有则追加以下内容。
{ "insecure-registries":["xx.xx.xx.xx:5000"] }  # 指定IP地址或域名

systemctl daemon-reload    # 守护进程重启
systemctl restart docker    # 重启docker服务
镜像上传与下载
docker push xx.xx.xx.xx:5000/nginx            # 一定要注明仓库地址,否则会报错
docker pull xx.xx.xx.xx:5000/nginx
  查看仓库镜像信息
curl -XGET http://xx.xx.xx.xx:5000/v2/_catalog    # 查看仓库镜像列表(也可以通过windows浏览器打开查看)
curl -XGET http://xx.xx.xx.xx:5000/v2/image_name/tags/list  # 查看指定应用镜像tag

三、搭建Registry web

首先搜索并拉取镜像
docker search docker-registry-web
docker pull hyper/docker-registry-web    # 这个镜像用的人较多
  运行一个registry web容器
docker run -d \            # 后台运行
--name registry-web \    # 指定容器名
--restart=always \        # 设置自动启动
-p 8000:8080 \            # 端口映射宿主机,通过宿主机地址访问
-v /opt/zwx-registry/web-config.yml:/conf/config.yml \    # 把配置文件挂载到本地,方便修改和保存
hyper/docker-registry-web

docker run -d  --name registry-web  --restart=always -p 8484:8080 -v ~/opt/tangxl-registry/web-config.yml:/conf/config.yml:ro  -v ~/opt/tangxl-registry/auth.key:/conf/auth.key:ro --link  registry  hyper/docker-registry-web

  在tangxl-registry文件夹下创建web-config.yml内容
web-config.yml文件内容如下

标红readonly参数设置为false,是为了web页面可以显示删除按钮。默认是true,只读状态,没有删除按钮,只能查看。

Docker私有仓库搭建与界面化管理,docker,容器,运维

registry:

  # Docker registry url

  url: 'http://12.21.11.5:5000/v2'

  # web registry context path

  # empty string for root context, /app to make web registry accessible on http://host/app

  context_path: ''

  # Trust any SSL certificate when connecting to registry

  trust_any_ssl: false

  #  base64 encoded token for basic authentication

  basic_auth: ''

  # To allow image delete, should be false

  readonly: false

  # Docker registry fqdn

  name: '12.21.11.5:5000'

  # Authentication settings

  auth:

    # Enable authentication

    enabled: true

    # Allow registry anonymous access

    # allow_anonymous: true # not implemented

    # Token issuer

    # should equals to auth.token.issuer of docker registry

    issuer: 'tangxl'

    # Private key for token signing

    # certificate used on auth.token.rootcertbundle should signed by this key

    key: /config/auth.key

Docker私有仓库搭建与界面化管理,docker,容器,运维

部署完成后,浏览器打开仓库UI地址即可查看到所有应用镜像

Docker私有仓库搭建与界面化管理,docker,容器,运维

选择任意应用镜像库,即可查看到该镜像的所有tag信息,每个tag后面都有个删除按钮(默认没有,配置参考config.yml)

Docker私有仓库搭建与界面化管理,docker,容器,运维


四、快捷部署

  集群模式可以通过docker stack快速部署registry和registry web。

  新建配置文件srv-config.yml、web-config.yml放到指定路径,再新建docker-compose.yml文件,执行命令即可。

docker stack deploy -c docker-compose.yml RGT

Docker私有仓库搭建与界面化管理,docker,容器,运维

version: '3.7'      # docker stack 需要是3.0以上版本
services:
  registry-srv:      # 服务名
    image: registry
    
    ports:         # 映射端口
      - 5000:5000
      
    volumes:        # 挂载镜像路径和配置文件,注意修改路径与实际一致
      - /opt/zwx-registry:/var/lib/registry
      - /opt/zwx-registry/srv-config.yml:/etc/docker/registry/config.yml
      
    deploy:        # 设置单任务,并约束主节点运行
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      
  registry-web:      # 服务名  
    image: hyper/docker-registry-web
    
    ports:        # 映射端口
      - 8000:8080
    
    volumes:      # 挂载配置文件,注意修改路径与实际一致
      - /opt/zwx-registry/web-config.yml:/conf/config.yml
      
    environment:
      - REGISTRY_URL=http://registry-srv:5000/v2
      - REGISTRY_NAME=localhost:5000
    
    deploy:        # 设置单任务,并约束主节点运行
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager

Docker私有仓库搭建与界面化管理,docker,容器,运维

私有仓库 - Docker — 从入门到实践文章来源地址https://www.toymoban.com/news/detail-547402.html

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

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

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

相关文章

  • Docker数据管理与搭建私有仓库

    特点 数据卷存在于宿主机的文件系统中,独立于容器,与容器的生命周期是分离的。 数据卷可以是目录,也可以是文件,容器可以利用数据卷与宿主机进行数据共享,实现容器间的数据共享和交换。 容器启动初始化时,如果容器使用的镜像包含了数据,这些数据会拷贝到数

    2024年02月22日
    浏览(31)
  • Docker学习入门(二):常用软件安装、掌握Docker迁移与备份、运用Dockerfile编写创建容器的脚本、搭建与使用docker私有仓库;

    Docker的学习目标: 4.掌握Tomcat Nginx等软件的常用的安装 5.掌握Docker迁移与备份相关命令 6.能够运用Dockerfile编写创建容器的脚本 7.能够搭建与使用docker私有仓库 8.学习总结 1.MYSQL的部署     (1)拉取mysql镜像          docker pull centos/mysql-57-centos7               (2)创建容

    2024年02月21日
    浏览(52)
  • 【运维知识大神篇】运维人必学的Docker教程6(Docker-Compose使用详解+Linux特性管理+macvlan技术+consul实现大规模跨主机通信overlay+私有仓库harbor)

    本篇文章继续给大家介绍Docker的有关内容,包括docker启动特权容器及利用特权修改内核参数,Attach和Exec区别,Docker-compose使用详解,Linux特性管理,macvlan技术实现docker跨主机通信,使用consul工具实现大规模跨主机通信overlay(基于vxlan实现),Docker相关参数说明,测试使用的

    2024年02月20日
    浏览(49)
  • 【运维知识大神篇】运维人必学的Docker教程1(Docker安装部署+Docker镜像管理+容器管理常用命令+搭建docker的本地yum源+windows系统安装docker环境)

    本篇文章开始给大家介绍Docker,这个是我非常喜欢的一个服务,介绍给大家,希望大家也能喜欢! 目录 何为容器 Docker环境安装部署 一、yum安装(CentOS7.9) 二、rpm包安装(CentOS) 三、卸载docker环境 四、安装指定的docker版本 五、Ubuntu安装docker环境 六、使用deb安装docker 七、

    2024年01月18日
    浏览(110)
  • docker搭建私有仓库

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

    2024年02月03日
    浏览(38)
  • 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)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包