Docker_学习笔记系列之仓库

docker仓库分公有和私有之分,本文主要介绍如何搭建私有仓库git

1. 简介
Docker仓库,相似于yum仓库,是用来保存镜像的仓库。为了方便的管理和使用docker镜像,能够将镜像集中保存至Docker仓库中,将制做好的镜像push到仓库集中保存,在须要镜像时,从仓库中pull镜像便可。github

Docker 仓库分为公有云仓库和私有云仓库docker

公有云仓库:由互联网公司对外公开的仓库json

  • 官方vim

  • 阿里云等第三方仓库

私有云仓库:组织内部搭建的仓库,通常只为组织内部使用,常使用下面软件搭建仓库centos

docker registoryapi

docker harbor浏览器

2.1 从dockerhub推送/拉取镜像
1.1 注册dockerhub建立帐号 :https://hub.docker.com/安全

注意点:上传dockerHub上的镜像名需知足:用户名/仓库名:标签

如:在dockerhub上建立了仓库learndocker仓库,那么你构建的镜像名就必须带有addmoney2018/learndocker,后面的标签自定义

docker push addmoney2018/learndocker:tagname服务器

You can push a new image to this repository using the CLI

docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname
Make sure to change tagname with your desired image repository tag.
1.2 在本地经过commit容器保存或者dockerfile构建一个镜像

1.3 本地登陆dockerHub :docker login,登陆后生成~/.docker/config.json文件保存验证信息

1.4 检查镜像名是否符合dockerHub要求的,如不行,修正,再上传镜像

docker tag old-image:tagename addmoney2018/learndocker:20201212

docker push addmoney2018/learndocker:20201212
1.5 从dockerHub上拉取镜像

docker login
docker pull addmoney2018/learndocker
2. 2 建立组织和团队赋权共同管理仓库
组织相似于名称空间,每一个组织的名称全网站惟一,一个组织能够有多个用户账户使用,而且能够指定不一样用户对组织内的仓库不一样的权限

三种不一样权限

  • Read-only:Pull and view repository details and builds

  • Read &Write:Pull, push, and view a repository; view, cancel, retry or trigger builds

  • Admin:Pull, push, view, edit, and delete a repository; edit build settings; update the repository description

2.2.1 建立组织

Docker_学习笔记系列之仓库

2.2.2 组织下建立团队

Docker_学习笔记系列之仓库

2.2.3 为团队下的仓库配置权限

Docker_学习笔记系列之仓库

2.2.4 本地将镜像上传到指定的组织

docker login
# 先将镜像名改为:docker.io/组织名/镜像名:标签
docker tag local_images docker.io/beijingdream:v1
# 推送
docker push docker.io/beijingdream:v1
# 其余机器拉取
docker pull docker.io/beijingdream:v1

注:还有一种是用阿里云的仓库,大致逻辑一致,请自行百度学习

3. 搭建本身的私有仓库
* 私有云单机仓库Docker Registry【官方提供】
Docker Registry做为Docker的核心组件之一负责镜像内容的存储与分发,客户端的docker pull以及push命令都将直接与registry进行交互,go开发后改项目名为Distribution

官方文档:https://docs.docker.com/registry/

源码GitHub地址:https://github.com/docker/distribution

官方部署文档:https://github.com/docker/docker.github.io/blob/master/registry/deploying.md

参考文档:https://yeasy.gitbook.io/docker_practice/repository/registry

3.1 从dockerHub上拉取docker registry镜像

docker pull registry:latest

3.2 启动容器运行仓库

docker run -d \
-p 5000:5000 \
--name my_registry
--restart=always \
-v /opt/data/registry_dir:/var/lib/registry \  
registry:latest

# 私有仓库容器里默认建立在/var/lib/registry里,经过映射就将全部的镜像文件保存到宿主机对应的目录里进行持久化防止因容器挂了数据丢失

3.3 在使用端修改docker配置文件,配置仓库地址

vim /etc/docker/daemon.json
{
"data-root" : "/app/lib/docker" ,
"registry-mirrors": ["192.168.0.100:5000"],  # 加速的地址
"insecure-registries" : ["192.168.0.100:5000"]
}
# 保存配置,重启docker
systemctl restart docker
# 从新启动registry生成容器

3.4 将本地镜像推送到私有仓库

docker tag centos 192.168.0.100:5000/centos:v1
docker push 192.168.0.100:5000/centos:v1

3.5 查看仓库状况

官网文档:https://docs.docker.com/registry/spec/api/#listing-repositories

# 只有api,没有可视化界面
http://192.168.0.100:5000/v2/_catalog
  • 分布式私有仓库harbor

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,由vmware开源,其经过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。Harbor支持安装在多个Registry节点的镜像资源复制,镜像所有保存在私有Registry中。

vmware官方开源服务:https://vmware.github.io/

harbor 官方github 地址:https://github.com/vmware/harbor

harbor 官方网址:https://goharbor.io/

harbor官方文档:https://goharbor.io/docs/

Harbor功能官方介绍

-基于角色的访问控制:用户与Docker镜像仓库经过“项目”进行组织管理,一个用户能够对多个镜像仓库在同一命名空间(project)里有不一样的权限

-镜像复制:镜像可在多个Registry实例中复制(同步)。尤为适合于负载均衡,高可用,混合云和多云的场景

-图形化用户界面:用户能够经过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间

-AD/LDAP 支:Harbor能够集成企业内部已有的AD/LDAP,用于鉴权认证管理

-审计管理:全部针对镜像仓库的操做均可以被记录追溯,用于审计管理

-国际化:已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来

-RESTful API:提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易

-部署简单:提供在线和离线两种安装工具, 也能够安装到vSphere平台(OVA方式)虚拟设备

具体的部署,可自行百度!

相关文章
相关标签/搜索