Docker镜像仓库搭建

docker registry仓库

1.介绍

registry用于保存docker镜像,包括镜像的层次结构和元数据

启动容器时,docker daemon会试图从本地获取相关的镜像;本地镜像不存在时,其将从registry中下载该镜像并保存到本地

拉取镜像时,如果不知道registry仓库地址,默认从Docker Hub搜索拉取镜像(hub.docker.com)

2.分类

Sponsor Registry:第三方的registry,供客户和docker社区使用

mirror Registry:第三方的registry,只让客户使用;如docker cn和阿里云的镜像加速器

vendor Registry:服务商的registry,由发布docker镜像的供应商提供的registry;如红帽提供的专有的,收费提供;

private Registry;通过设有防火墙和额外的安全层的私有实体提供的registry;自建的registry,在本地搭建registry,节省带宽

3.registry组成(repository和index)

repository

由特定的docker镜像的所有迭代版本组成的镜像仓库;

一个registry中可以存在多个repository

repository可分为顶层仓库和用户仓库

用户仓库名称格式为用户名/仓库名

每个仓库可以包含多个Tag,每个标签对应一个镜像

Index

维护用户账户、镜像的校验以及公共命名空间的信息

相当于为registry提供了一个完成用户认证等功能的检索接口

4.拉取上传仓库镜像

拉取镜像

docker pull [:]/[/]:

registry:仓库服务器地址;不指定默认是docker hub

port:端口;默认443

namespace:名称空间,指定是哪个用户的仓库,如果是顶层仓库,可省略

name:仓库名

tag:标签名;默认最新版本

上传镜像

docker push [OPTIONS] NAME[:TAG]

5.知名镜像仓库

https://hub.docker.com

Quay

例如:docker pull quay.io/coreos/flannel:v0.10.0-amd64

https://promotion.aliyun.com/ntms/act/kuberbetes.html

搭建阿里云提供的私有仓库

可以在dockerhub上创建自己的仓库,也可以在阿里云上https://cr.console.aliyun.com/cn-hangzhou/repositories创建自己的docker仓库

如果仓库是私有的,拉取时需要先登录,如果是公共的可以直接拉取

搭建私有仓库distribution

docker提供的开源Registry很简单,只能作为存储镜像的仓库,没有额外的功能

1.yum安装distribution并使用

直接从extras源中下载安装

yum info docker-distribution

yum install docker-distribution.x86_64

启动docker-distribution

systemctl start docker-distribution.service

rpm -ql docker-distribution

查看distribution的yml文件,/var/lib/registry即为镜像存放在本机的位置,addr即为仓库名(ip:5000)

2.docker 上传下载默认只支持https协议,搭建的私有仓库是http协议,需要对Docker Daemon进行修改,添加insecure-registries,地址为Docker Registry IP + 端口号

3.上传镜像测试

修改镜像tag为仓库名后再上传

查看上传的镜像

搭建官方提供的私有仓库

registry镜像构建私有仓库

1.拉取镜像

2.启动registry容器

由于之前distribution仓库占用了5000端口

先停止distribution服务再启动

-p 5000:5000将容器的5000端口暴露在宿主机的5000端口

-v /data/registry:/var/lib/registry指定将镜像存储到宿主机的/data/registry

-d 后台运行容器

3.上传镜像测试

先将私有仓库认证为安全仓库(之前搭建distribution仓库已经设置过5000)

修改镜像tag后上传

如果之前没有设置仓库协议,上传镜像会提示要用https

将仓库进行web管理

1.拉取镜像

2.运行容器

-e环境变量

3.访问测试

Docker私有仓库harbor搭建(推荐使用)

docker官方提供的私有仓库registry,用起来虽然简单,但是在管理的功能上存在不足。harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。

注意:需要的依赖

安装harbor之前需要安装docker

由于harbot是基于Docker Registry V2版本,所以docker版本必须>=1.10.0 docker-compase >+1.6.0

下载最新版Docker Compose

curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose (仅参考,可手动到https://github.com/docker/compose进行下载)

右键复制链接到迅雷下载快些

# 对二进制文件应用可执行权限:

chmod +x /usr/local/bin/docker-compose

# 测试是否安装成功

docker-compose --version

离线安装docker-compose

下载离线安装包

wget -c https://github.com/goharbor/harbor/release/download/v2.0.2/harbor-offline-installer-v2.0.2.tgz

直接到github下载

可右键复制链接地址到迅雷下载

解压

tar xf harbor-offline-installer-v2.0.2.tgz -C /usr/local (不强制目录)

配置

解压目录下有一个harbor.yml.tmpl文件为配置模板

cp为yml文件进行配置

配置项:

修改3个地方:hostname,http端口,注释掉https(没有配置证书启动会报错)

hostname:设置为主机名

没有证书,把https协议注释

harbor_admin_password:默认登录密码(可配置)

data_volume:数据目录(可配置)

其他默认即可

安装

解压目录有安装脚本

可以看到第一步和第二部检查docker和docker-compose版本

第三步拉取镜像

报错容器名冲突(把之前运行的registry容器删除再重新安装)

安装完成

访问测试(hostname填写了主机名为域名也可以用主机名访问,windows需要做host解析)

默认账号admin

密码为Harbor12345(之前的yml也可以配置)

控制harbor服务

停止:在/usr/local/harbor (harbor的docker-compose.yml文件在此处)下执行docker-compose down

启动:在/usr/local/harbor下执行docker-compose up-d,-d表示后台运行

1.暂停/取消暂停harbor服务

docker-compose pause

docker-compose unpause

2.关闭/开启harbor服务

docker-compose stop

docker-compose start

docker-compose start-d

harbor使用:

上传下载镜像

1.修改docker配置,添加harbor仓库,重启docker

默认http改为https,地址为之前设置的hostname

设置hosts解析

重启docker

2.镜像打标签

访问的页面可以查看到镜像需要修改的仓库名

3.登录harbor,上传镜像

公共的,下载不需要账号密码

4.创建私有项目

默认有一个library,可以创建一个新的项目

私有的下载也需要账号密码

创建项目

创建用户

进入项目关联用户

创建完成

登录用户测试

上传镜像完成

5.harbor v2配置https

参考harbor官网配置即可

Harbor docs | Configure HTTPS Access to Harbor

  • 16
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值