搭建私有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,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
4月前
|
Docker 容器
宝塔docker添加仓库
宝塔docker添加仓库
495 0
|
4月前
|
存储 Kubernetes Linux
解决Linux中/var/lib/docker/磁盘空间过大及k8s存储卷磁盘空间使用率过高的问题
解决Linux中/var/lib/docker/磁盘空间过大及k8s存储卷磁盘空间使用率过高的问题
140 0
|
3月前
|
存储 Java 对象存储
springboot配置阿里云OSS存储实现文件上传下载功能
【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能
524 2
|
4月前
|
Cloud Native 安全 应用服务中间件
云原生|docker本地仓库的搭建(简易可快速使用的本地仓库)(修订版)
云原生|docker本地仓库的搭建(简易可快速使用的本地仓库)(修订版)
129 0
|
24天前
|
存储 安全 数据安全/隐私保护
oss数据加密与存储
阿里云OSS提供多种数据加密(SSE-S3, SSE-KMS, SSE-C, CSE-KMS)与存储安全措施,包括服务器和客户端加密、数据在磁盘上加密存储、多重冗余备份、访问控制列表和HTTPS安全传输。KMS支持密钥管理,确保数据静态和传输时的安全。严格的访问策略和身份验证保护资源免受未授权访问,满足高安全性和合规性需求。
35 3
|
29天前
|
网络协议 网络安全 Docker
docker离线搭建仓库
docker离线搭建仓库
36 4
|
5月前
|
Cloud Native 数据安全/隐私保护 Docker
微服务轮子项目(41) -Docker私有镜像仓库
微服务轮子项目(41) -Docker私有镜像仓库
73 0
|
5月前
|
Ubuntu 数据安全/隐私保护 Docker
|
2月前
|
Java 测试技术 Maven
云效问题之构建docker镜像从容器仓库拉取镜像报错如何解决
云效镜像是指存储在阿里云效服务中的容器镜像,它们可以用于持续集成和持续部署(CI/CD)流程中;本合集将介绍如何在云效平台上管理和使用镜像资源,以及常见的镜像问题和解决办法。
66 0
|
3月前
|
存储 对象存储 Python
Python中使用阿里云OSS存储实现文件上传和下载功能
Python中使用阿里云OSS存储实现文件上传和下载功能
414 2