• 云原生之容器编排实践-阿里云私有容器镜像仓库


    背景

    前面我们已经通过 IDEADocker 插件连接到了 Docker 服务,并借助 DockerfileMaven 打包插件实现一键部署 Spring Boot 应用到远程 Docker 容器。但是这里的镜像都存储在本地( Docker 所在的主机),这样在实际的协同开发时不方便共享,所以可以采用各大云服务商提供的私有容器镜像仓库服务,或者自建私有仓库。这里使用阿里云提供的私有容器镜像仓库进行实践。

    阿里云私有容器镜像仓库

    • 阿里云搜索容器镜像服务

    直接在阿里云搜索容器镜像服务即可。

    2022-09-03-AliyunDockerSearch.jpg

    • 创建个人实例

    作为实验测试,使用个人实例即可,如果实际生产需要,可选择企业实例。

    2022-09-03-DockerPersonal.jpg

    远程登录并上传镜像

    命令行登录阿里云私有容器镜像仓库后,对指定的镜像打Tag,然后推送到远程镜像仓库。

    # 先看下本地镜像列表
    [root@k8s0 ~]# docker images
    REPOSITORY                                                    TAG              IMAGE ID       CREATED         SIZE
    heartsuit/cloud-native                                        latest           eb03480c1351   3 days ago      122MB
    heartsuit/cloud-native                                        0.0.1-SNAPSHOT   e0f7dde1261a   4 days ago      122MB
    kicbase/stable                                                v0.0.32          ff7b11088f07   2 months ago    1.15GB
    hello-world                                                   latest           feb5d9fea6a5   11 months ago   13.3kB
    openjdk                                                       8-jdk-alpine     a3562aa0b991   3 years ago     105MB
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    # 输入账号与密码登录
    [root@k8s0 ~]# docker login --username=heartsuit registry.cn-hangzhou.aliyuncs.com
    Password: 
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    
    Login Succeeded
    
    # 打Tag
    [root@k8s0 ~]# docker tag e0f7dde1261a registry.cn-hangzhou.aliyuncs.com/container-repo/docker-hub:0.0.1-SNAPSHOT
    
    # Push到远程仓库
    [root@k8s0 ~]# docker push registry.cn-hangzhou.aliyuncs.com/container-repo/docker-hub:0.0.1-SNAPSHOT
    The push refers to repository [registry.cn-hangzhou.aliyuncs.com/container-repo/docker-hub]
    8fae554c8835: Pushed 
    ceaf9e1ebef5: Pushed 
    9b9b7f3d56a0: Pushed 
    f1b5933fe4b5: Pushed 
    0.0.1-SNAPSHOT: digest: sha256:aa901df7e77dce21461b28d3c4c46241cdc3e0247631541b29eee551f3ee529b size: 1159
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    # 再次看下本地镜像列表
    [root@k8s0 ~]# docker images
    REPOSITORY                                                    TAG              IMAGE ID       CREATED         SIZE
    heartsuit/cloud-native                                        latest           eb03480c1351   3 days ago      122MB
    registry.cn-hangzhou.aliyuncs.com/container-repo/docker-hub   0.0.1-SNAPSHOT   eb03480c1351   3 days ago      122MB
    heartsuit/cloud-native                                        0.0.1-SNAPSHOT   e0f7dde1261a   4 days ago      122MB
    kicbase/stable                                                v0.0.32          ff7b11088f07   2 months ago    1.15GB
    hello-world                                                   latest           feb5d9fea6a5   11 months ago   13.3kB
    openjdk                                                       8-jdk-alpine     a3562aa0b991   3 years ago     105MB
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    远程镜像仓库

    2022-09-03-AliyunDocerRepository.png

    之后,就可以将自己 Build 好的镜像进行共享了。

    小总结

    以上是使用阿里云提供的私有容器镜像仓库托管服务的具体实践,其实,其他云服务提供商提供的此类服务的用法基本一致,eg: 腾讯云,因为都是参考的 Docker 官方的镜像仓库来实现的。当然如果网络环境(主要是上传和拉取镜像的速度)具备条件,可直接使用 Docker 官方提供的镜像库。

    使用阿里云私有容器镜像仓库有以下几个优点:

    1. 安全性:私有容器镜像仓库可以提供更高的安全性,因为只有授权的用户才能访问和使用镜像。这可以防止未经授权的访问和潜在的安全漏洞。

    2. 稳定性:私有容器镜像仓库可以提供更稳定的服务,因为它们通常部署在可靠的云平台上,并受到监控和维护。这可以确保您的应用程序在任何时间都能够访问所需的镜像。

    3. 性能:私有容器镜像仓库通常位于与应用程序相同的云区域或网络中,这可以提供更快的下载速度和更低的延迟。这对于需要频繁拉取镜像的应用程序来说尤为重要。

    4. 定制性:私有容器镜像仓库允许您根据自己的需求和偏好进行定制。您可以创建自己的镜像标签、版本控制和访问权限,以满足特定的应用程序需求。

    总而言之,使用阿里云私有容器镜像仓库可以提供更高的安全性、稳定性、性能和定制性,使您能够更好地管理和部署容器化应用程序。

    有了私有的容器镜像仓库,当在 minikube 或者 Kubernetes 中拉取私有容器镜像仓库的镜像时,并不能直接拉取,还需要进行认证信息配置,这在后续文章中会专门介绍到。

    Reference


    If you have any questions or any bugs are found, please feel free to contact me.

    Your comments and suggestions are welcome!

  • 相关阅读:
    java基于ssm+vue的办公耗材采购管理系统
    git 报错Failed to connect to github.com port 443 after 21224 ms: Timed out 解决办法
    基于阿里云GPU云服务器的AIACC助力UC搜索业务性能提效380%,每年节省数千万成本
    业务可视化-让你的流程图"Run"起来(4.实际业务场景测试)
    Ubuntu+10.04安装Bochs+2.4.5笔记
    ArcGIS笔记8_测量得到的距离单位不是米?一经度一纬度换算为多少米?
    离线数据开发流程小案例-图书馆业务数据
    VT-VSPA1-508-1X/V0替代型模拟放大器
    SpringMVC之CRUD和文件上传下载
    libusb系列-006-Qt下使用libusb1.0.9源码
  • 原文地址:https://blog.csdn.net/u013810234/article/details/126568670