资讯专栏INFORMATION COLUMN

搭建私有Docker仓库,存储到阿里云OSS

Cc_2011 / 1360人阅读

摘要:包括两个关键组成部分和。简单理解,第一个是负责存储的,第二个是负责管理镜像的。使用阿里云的保存镜像文件默认镜像文件存到本地磁盘,这个可扩展性不是很好,我们可以把镜像文件存到中。注查询网址阿里云的其他参数查询网址

Docker Registry简介

Docker Registry是开源的软件,可以进行存储和分发Docker镜像。Docker Registry包括两个关键组成部分:Docker Trusted Registry和Docker Hub。简单理解,第一个是负责存储的,第二个是负责管理镜像的。

Docker Hub以前叫作Docker Index,Docker每次pull镜像时,都是先去Docker Index获取镜像信息,然后去保存镜像的Registry里面下载。

用过Docker的都知道,每次pull镜像时都很慢。后来国内出现了一些加速下载的,可是只是加速了镜像文件的下载。还是需要去连接官方的index服务,这一步很慢,而且还可能失败。

再往后,国内也提供index服务的加速了,但这样我们就需要完全信任他们了,因为我们完全不用连接官方的服务器了。如果我们不信任他们,或者我们有自己的私有镜像,不想发到公网去,我们就可以用Docker官方推荐的Docker Registry了。


安装使用Docker Registry 下载Docker Registry的镜像

官方提供了Docker Registry的镜像文件,我们只需执行docker pull registry就可以了。今天(206.02.24)lastest标签的registry是版本0.9.1,所以如果我们要用最新版本2.3,可以拉取tag为2,2.3,2.3.0的都可以。执行如下命令即可:

docker pull registry:2
启动Docker Registry

启动:

docker run -d -p 443:5000 --restart=always --name registry registry:2

下载镜像,并把它上传到自己的registry:

docker pull busybox && docker tag busybox localhost/busybox
docker push localhost/busybox

这样localhost/busybox就在自己的registry中了,下次可以直接pull下来

docker pull localhost/busybox
镜像文件存储本地
docker run -d -p 443:5000 --restart=always --name registry 
  -v `pwd`/data:/var/lib/registry 
  registry:2
使用https

上一篇文章介绍了如何获取证书,新建一个目录config,将证书chained.pem和密钥domain.key拷贝到目录config里面,然后执行:

docker run -d -p 443:5000 --restart=always --name registry 
  -v `pwd`/config:/config 
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/config/chained.pem 
  -e REGISTRY_HTTP_TLS_KEY=/config/domain.key 
  registry:2

下次对镜像进行操作时,可以把localhost改为这个证书对应的域名了。证书有的是crt结尾了,没关系,把chained.pem改为你想要的名字就可以了。

添加权限认证

按照之前的步骤,任何人都可以push和pull这个仓库中的镜像。如果443端口暴露在外网中,最好加个权限认证。testusertestpassword分别为用户名和密码,可以修改为你想要的,然后执行:

htpasswd -Bbn testuser testpassword > config/htpasswd

如果本地没有安装htpasswd,也可以在启动了registry后执行如下命令:

docker exec registry htpasswd -Bbn testuser testpassword > config/htpasswd

然后再执行启动命令:

docker run -d -p 443:5000 --restart=always --name registry 
  -v `pwd`/config:/config 
  -e "REGISTRY_AUTH=htpasswd" 
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" 
  -e REGISTRY_AUTH_HTPASSWD_PATH=/config/htpasswd 
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/config/chained.pem 
  -e REGISTRY_HTTP_TLS_KEY=/config/domain.key 
  registry:2

这样,访问registry就需要先login,docker login myregistrydomain.com,按提示输入用户名和密码即可。


使用阿里云的OSS保存镜像文件

默认镜像文件存到本地磁盘,这个可扩展性不是很好,我们可以把镜像文件存到OSS中。这个使用起来也很简单,因为官方registry中已经包含了OSS的驱动了。只需修改启动命令即可:

docker run -d -p 443:5000 --restart=always --name registry 
  -v `pwd`/config:/config 
  -e "REGISTRY_AUTH=htpasswd" 
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" 
  -e REGISTRY_AUTH_HTPASSWD_PATH=/config/htpasswd 
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/config/chained.pem 
  -e REGISTRY_HTTP_TLS_KEY=/config/domain.key 
  -e REGISTRY_STORAGE=oss 
  -e REGISTRY_STORAGE_OSS_ACCESSKEYID=********** 
  -e REGISTRY_STORAGE_OSS_ACCESSKEYSECRET=***************** 
  -e REGISTRY_STORAGE_OSS_REGION=oss-cn-qingdao 
  -e REGISTRY_STORAGE_OSS_BUCKET=******* 
  registry:2

将上面命令中的***替换成自己的,REGISTRY_STORAGE_OSS_REGION的值也要替换成自己oss所在的地区,如果是青岛就是oss-cn-qingdao

注:

region查询网址

阿里云OSS的其他参数查询网址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26525.html

相关文章

  • 利用阿里 OSS 搭建私有 Docker 仓库

    摘要:前言最近开始研究的应用,于是打算搭建一个私有的仓库,并使用阿里云的作为存储引擎。登陆成功后,执行以下命令即可上传配置阿里云首先在刚才执行的命令行窗口中按退出服务。待上传完毕,可以打开阿里云的控制台界面检查文件是否被正确上传上去了。 前言 最近开始研究 Docker 的应用,于是打算 搭建一个私有的 Docker 仓库,并使用阿里云的 OSS 作为存储引擎 。从网上搜索到的资料大都是比较...

    haoguo 评论0 收藏0
  • Nexus3私有仓库搭建 docker+maven+npm

    摘要:安装号称是世界上最流行的私服管理软件可以搭建几乎目前所有常见的仓库如等更是增加了对仓库的支持应该是搭建私服的唯一选择有两个版本和其中版本是免费专业版需要收费对于日常的仓库管理已经足够用支持二进制文件安装和安装这里选择安装简单方便运行以下命令 安装 Nexus号称是世界上最流行的私服管理软件(The worlds most popular repository),可以搭建几乎目前所有常见...

    bang590 评论0 收藏0
  • ZFile自建免费公共网盘服务-支持阿里OSS,OneDrive,FTP,S3协议等存储

    对于网站存储的需求,大多数人还是以私有网盘为主,目的是为了可以存储属于私人的视频、文档、音频等资料。但是,也有不少的人想要搭建一个公共的网盘,主要目的是可以方便所有人查看、浏览和下载、使用,同时也提供视频在线播放,变成影视站点。这样的公共网盘服务搭建起来并不是很复杂,但是苦于高昂的存储费用,有的人盯上了超大容量且免费的网盘服务,例如OneDrive,团队版甚至可以达到TB以上,将OneDrive变...

    番茄西红柿 评论0 收藏2637
  • SpringBoot 整合 阿里OSS 存储服务,快来免费搭建一个自己的图床

    摘要:笔主很早就开始用阿里云存储服务当做自己的图床了。阿里云对象存储文档,本篇文章会介绍到整合阿里云存储服务实现文件上传下载以及简单的查看。 Github 地址:https://github.com/Snailclimb/springboot-integration-examples(SpringBoot和其他常用技术的整合,可能是你遇到的讲解最详细的学习案例,力争新手也能看懂并且能够在看完...

    邹强 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<