搭建私有docker仓库并使用OSS作为存储

本文主要是演示如果快速搭建一个私有的docker仓库,并且使用OSS作为存储,docker的用法以及docker仓库的更多设置,不在本文讨论范围

安装docker-engine

以 centos 7 为例

yum update

tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

yum install docker-engine

systemctl enable docker.service
systemctl start docker
systemctl docker status

编辑配置文件

  • endpoint:访问oss的链接,主要分为公网、经典网络内网和VPC下内网,构成方式为bucket+各个endpoint OSS region和endpoint详细列表
  • region:Region英文表示
  • bucket:OSS的bucket名称

假设OSS是在美西,bucket是t-docker-registry,通过经典网络内网访问OSS,下面是一个基础版的完整配置
配置文件详细说明

version: 0.1
log:
  fields:
    service: registry
storage:
  cache:
    blobdescriptor: inmemory
  oss:
    accesskeyid: ${accesskeyid}
    accesskeysecret: ${accesskeysecret}
    secure: false
    region: oss-us-west-1
    endpoint: t-docker-registry.oss-us-west-1-internal.aliyuncs.com
    bucket: t-docker-registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

启动任务

配置文件路径 /root/docker-registry/config-registry.yml

启动docker仓库

docker run -d -p 5000:5000 --restart=always --name registry -v /root/docker-registry/config-registry.yml:/etc/docker/registry/config.yml registry:2

测试本地仓库

获取一个docker image

docker pull hello-world

修改tag

docker tag hello-world 127.0.0.1:5000/hello-world

推送镜像到本地仓库

docker push 127.0.0.1:5000/hello-world

推送成功后返回类似如下信息

[root@host docker-registry]# docker push 127.0.0.1:5000/hello-world
The push refers to a repository [127.0.0.1:5000/hello-world]
a02596fdd012: Mounted from hello-world
latest: digest: sha256:a18ed77532f6d6781500db650194e0f9396ba5f05f8b50d4046b294ae5f83aa4 size: 524
[root@host docker-registry]#

同时在OSS控制台对应的bucket下面可以看到创建了相应的文件

测试拉去image,先删除本地的image

docker rmi 127.0.0.1:5000/hello-world

查看本地image仓库,里面已经没有了127.0.0.1:5000/hello-world

docker images

从本地docker仓库拉去 127.0.0.1:5000/hello-world

docker pull 127.0.0.1:5000/hello-world

成功后返回类似如下信息

[root@host docker-registry]# docker pull 127.0.0.1:5000/hello-world
Using default tag: latest
latest: Pulling from hello-world
Digest: sha256:a18ed77532f6d6781500db650194e0f9396ba5f05f8b50d4046b294ae5f83aa4
Status: Downloaded newer image for 127.0.0.1:5000/hello-world:latest

查看本地image仓库,里面已经有了127.0.0.1:5000/hello-world

docker images
时间: 2024-08-03 20:08:15

搭建私有docker仓库并使用OSS作为存储的相关文章

基于OSS搭建私有 Docker Registry

基于OSS搭建私有 Docker Registry Docker Registry 作为 Docker 的核心组件之一负责了镜像的存储以及分发.用户只需要使用 Docker 的客户端就可以直接和 Registry 进行交互,下载和上传镜像.最初版本的 Registry 由 Python 实现.由于设计初期在安全性,性能以及 API 的设计上有着诸多的缺陷,该版本在 0.9 之后停止了开发.新的项目由 Go 语言开发,所有的API,底层存储方式,系统架构都进行了全面的重新设计已解决上一代 Regi

CoreOS 收购 Quay.io 发布私有 Docker 仓库

CoreOS 公司今天宣布已经收购 Quay.io,这是一个用于托管私有 Docker 仓库的服务.很多 Docker 的开发者一般会使用公有的 Docker 仓库或者构建自己的私有仓库.而 Quay.io 主要是帮助开发者构建私有仓库.而 CoreOS 的收费的受管的 Linux 服务客户将可以使用基于 Quay.io 提供的 CoreOS Enterprise Registry 服务. Quay.io 的两名在纽约的联合创始人将会加入 CoreOS 团队,而 CoreOS 并将在纽约开设办公

为Docker Trusted Registry配置OSS对象存储

简介 Docker Trusted Registry(DTR)是Docker企业版的重要组成部分,可以部署在企业专有云环境中,提供容器镜像管理,认证授权.安全扫描.数字签名等能力. Docker镜像管理需要使用大量的存储资源,采用本地存储无法满足用户对容量和可用性的需求.Docker Registry已经内置了对阿里云对象存储服务(OSS)的支持,为镜像管理提供一个支持海量数据存储,高性能访问,高可用,安全,低成本,无需运维的存储后端.本文将介绍如何在Docker Trusted Registr

[gitlab]搭建私有github仓库

自己机器只有178M内存后面机器实在跑不动了,做到安装MySQL需要的Gems这一步,这里面有几点需要注意一下:1.mysqld在centos中目录/etc/init.d/mysqld start为开启服务 2.本文一直使用sudo命令用名为git账户去创建gitlab  3.需要修改ruby的使用源为淘宝的 4.你的机器内存最好在1G以上,我的只有512m执行bundle命令内存不足.   Gitlab是一个用Ruby on Rails开发的开源项目管理程序,可以通过WEB界面进行访问公开的或

docker学习(8) 在mac机上搭建私有仓库

docker的私有仓库类似maven的私服,一般用于公司内部搭建一个类似docker hub的环境,这样上传.下载镜像速度较快,本文将演示如何在mac上利用docker-machine搭建无需SSL证书的私有仓库. 一.查看docker-machine虚拟机IP docker-machine ip default 默认情况下docker-toolbox创建的虚拟机名称为default,如果您的虚拟机名字不是这个,上面命令最后的default换成真实的虚拟机名字,假设default分配的IP为19

docker 搭建私有仓库及镜像存储目录结构

仓库 (Repository)是集中存放镜像的地方, docker 仓库分为公有仓库和私有仓库,然而公有仓库在某些情况下并不适用于公司内部传输,所以在这边我来搭建私有环境的 registry .那私有仓库较公有仓库有以下优点: 省带宽 传输速度快 方便存储 下面我们来创建私有仓库,实现 docker client 通过 docker registry 上传和下载 docker images,最后说下docker registry 的存储方式. 本实验要达到的效果是: 1.docker regis

搭建基于Docker的PHP开发环境的详细教程

  这篇文章主要介绍了搭建基于Docker的PHP开发环境的详细教程,Docker是当下虚拟机技术的最佳选择,需要的朋友可以参考下 现在很多开发者都使用Vagrant来管理他们的虚拟机开发环境,Vagrant确实很酷, 不过也有不少缺点(最主要的是它占用太多的资源).在容器技术.Docker和更多类Docker技术出现后,解决这个问题就变得简单了. 免责声明 由于boot2docker的工作方式,本文所述的方法在你的环境中可能无法正常运行.如果需要在非Linux环境下共享文件夹到Docker容器

搭建基于Docker的PHP开发环境的详细教程_php技巧

现在很多开发者都使用Vagrant来管理他们的虚拟机开发环境,Vagrant确实很酷, 不过也有不少缺点(最主要的是它占用太多的资源).在容器技术.Docker和更多类Docker技术出现后,解决这个问题就变得简单了.免责声明 由于boot2docker的工作方式,本文所述的方法在你的环境中可能无法正常运行.如果需要在非Linux环境下共享文件夹到Docker容器,还需要注意更多额外的细节.后续我会写篇文章专门来介绍实际遇到的问题.怎样才算是好的开发环境 首先,我们得知道什么才是好的开发环境,

Ubuntu 搭建基于Docker的LNMP+Redis的开发环境(图文)_docker

Ubuntu 搭建基于Docker的LNMP+Redis的开发环境 服务器环境:Ubuntu 14.04 1.安装Docker 1.1 执行update命令,和服务器同步软件包,执行apt-get install * 时可以下载最新的软件.   1.2 安装Docker和创建软链接   1.3 启用Docker服务 2. 获取搭建环境所需镜像 2.1 MySQL镜像 2.2 Redis镜像    2.3 nginx-php-fpm镜像    2.4 查看已下载的镜像 对于Docker初学者来说,