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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 本文主要是演示如果快速搭建一个私有的docker仓库,并且使用OSS作为存储,docker的用法以及docker仓库的更多设置,不在本文讨论范围

本文主要是演示如果快速搭建一个私有的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
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
6天前
|
存储 安全 开发工具
oss加密存储
阿里云OSS为数据安全提供多种加密机制,包括服务器端的SSE-S3(AES-256透明加密)、SSE-C(用户管理密钥)和CSE-KMS(结合KMS进行密钥管理)。此外,OSS支持客户端加密SDK和HTTPS传输加密,确保数据在传输和存储时的安全。通过ACL、Bucket策略和访问密钥身份验证,实现权限控制与身份验证,全方位保障用户数据的安全性和隐私。用户可按需选择适合的加密方式。
50 2
|
6天前
|
存储 Java 对象存储
springboot配置阿里云OSS存储实现文件上传下载功能
【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能
730 2
|
4天前
|
存储 Linux Docker
CentOS7修改Docker容器和镜像默认存储位置
CentOS7修改Docker容器和镜像默认存储位置
|
4天前
|
存储 测试技术 数据安全/隐私保护
docker 存储挂载比较
docker 存储挂载比较
|
6天前
|
存储 缓存 运维
【Docker 专栏】Docker 镜像的分层存储与缓存机制
【5月更文挑战第8天】Docker 镜像采用分层存储,减少空间占用并提升构建效率。每个镜像由多个层组成,共享基础层(如 Ubuntu)和应用层。缓存机制加速构建和运行,通过检查已有层来避免重复操作。有效管理缓存,如清理无用缓存和控制大小,可优化性能。分层和缓存带来资源高效利用、快速构建和灵活管理,但也面临缓存失效和层管理挑战。理解这一机制对开发者和运维至关重要。
【Docker 专栏】Docker 镜像的分层存储与缓存机制
|
6天前
|
存储 数据管理 数据安全/隐私保护
【Docker专栏】Docker存储卷管理:数据持久化的关键
【5月更文挑战第7天】本文探讨了Docker容器中数据持久化的关键——存储卷,包括其独立于容器生命周期的特性、数据共享与迁移能力。Docker提供默认、命名、数据卷容器和挂载宿主机目录四种卷类型。创建与管理涉及`docker volume create`、`ls`、`run`等命令。最佳实践建议使用命名存储卷,定期备份,避免存储敏感数据,并清理未使用卷。了解和有效管理存储卷能提升容器灵活性和数据管理效率。
【Docker专栏】Docker存储卷管理:数据持久化的关键
|
6天前
|
存储 SQL 关系型数据库
存储系统、数据库和对象存储 | 青训营
存储系统、数据库和对象存储 | 青训营
|
6天前
|
存储 Apache Swift
无限套娃_docker入门(镜像、容器、仓库)
无限套娃_docker入门(镜像、容器、仓库)
36 0
|
6天前
|
存储 API 数据安全/隐私保护
企业级Docker镜像仓库Harbor部署与使用
企业级Docker镜像仓库Harbor部署与使用
|
6天前
|
存储 安全 API
对象存储OSS产品常见问题之附件上传后存储存在被窃取的风险如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
28 0