4.Docker本地镜像发布至阿里云仓库、私有仓库、DockerHub

2024-04-29 11:44

本文主要是介绍4.Docker本地镜像发布至阿里云仓库、私有仓库、DockerHub,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 0、镜像的生成方法
  • 1、本地镜像发布到阿里云仓库
  • 2、本地镜像发布到私有仓库
  • 3、本地镜像发布到Docker Hub仓库

Docker仓库是集中存放镜像的地方,分为公共仓库和私有仓库。

注册服务器是存放仓库的具体服务器,一个注册服务器上可以有多个仓库,而每个仓库下面可以有多个镜像。例如对于仓库地址private-docker.com/ubuntu来说,private-docker.com是注册服务器地址,ubuntu是仓库名。

0、镜像的生成方法

镜像的生成方法共三种,详情见3.Docker常用镜像命令和容器命令详解中创建镜像小结。

  1. 基于已有容器创建
  2. 基于本地魔板导入
  3. 基于Dockerfile创建

本地镜像发布流程:

在这里插入图片描述

1、本地镜像发布到阿里云仓库

  1. 在阿里云开发者平台创建镜像仓库

  2. 在阿里云开发者平台选择容器镜像服务

    在这里插入图片描述

  3. 创建个人实例、创建命名空间、创建镜像仓库

    在这里插入图片描述

  4. 进入管理界面获得脚本

    在这里插入图片描述

  5. 按照脚本进行登录、添加tag、推送镜像到阿里云

     #登录docker login --username=命名空间 registry.cn-hangzhou.aliyuncs.com#将需要推送的镜像增加对应的标签tagdocker tag cea1bb40441c registry.cn-hangzhou.aliyuncs.com/命名空间/myubuntu:1.0#推送镜像docker push registry.cn-hangzhou.aliyuncs.com/命名空间/myubuntu:1.0
    
  6. 查看阿里云镜像层,推送成功

    在这里插入图片描述

  7. 将阿里云镜像拉取到本地

    docker pull registry.cn-hangzhou.aliyuncs.com/命名空间/myubuntu:1.0
    

2、本地镜像发布到私有仓库

本地仓库通过拉取registry镜像并运行容器,通过docker服务提供私有仓库。

  1. 下载镜像Docker Registry

    [root@localhost .docker]# docker pull registry 
    [root@localhost .docker]# docker images
    REPOSITORY                                            TAG       IMAGE ID       CREATED       SIZE
    registry                                              2         b8604a3fe854   2 years ago   26.2MB
    192.168.10.101:5000/ubuntu                            0.1       ba6acccedd29   2 years ago   72.8MB
    ubuntu                                                latest    ba6acccedd29   2 years ago   72.8MB
    registry.cn-hangzhou.aliyuncs.com/***/myubuntu   1.0       ba6acccedd29   2 years ago   72.8MB
    
  2. 运行私有库Registry,相当于本地有个私有的DockerHub

    [root@localhost .docker]# docker run -d -p 5000:5000  -v /opt/data/registry/:/tmp/registry --privileged=true registry[root@localhost .docker]# docker ps
    CONTAINER ID   IMAGE        COMMAND                   CREATED      STATUS          PORTS                                       NAMES
    576c26ba353b   registry:2   "/entrypoint.sh /etc…"   2 days ago   Up 45 minutes   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   registry

    在本地启动一个私有仓库服务,监听端口为5000。

  3. 生成一个带ifconfig的ubuntu镜像

    #进入ubuntu容器,docker容器内执行上述两条命令:
    apt-get update
    apt-get install net-tools
    #执行ifconfig命令成功
    #docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
    docker commit -m="ifconfig cmd add" -a="zyn" 容器ID 要创建的目标镜像名:[标签名]#将新镜像修改为符合私服规范的Tag
    docker tag  ubuntu:latest 192.168.10.101:5000/myubuntu:1.2[root@localhost .docker]# docker images
    REPOSITORY                                            TAG       IMAGE ID       CREATED       SIZE
    registry                                              2         b8604a3fe854   2 years ago   26.2MB
    192.168.10.101:5000/ubuntu                            0.1       ba6acccedd29   2 years ago   72.8MB
    ubuntu                                                latest    ba6acccedd29   2 years ago   72.8MB
    registry.cn-hangzhou.aliyuncs.com/***/myubuntu   1.0       ba6acccedd29   2 years ago   72.8MB
    
  4. 通过curl验证私服库上的镜像

    [root@localhost .docker]# curl -XGET http://192.168.10.101:5000/v2/_catalog
    
  5. 修改配置文件使之支持http,docker默认不允许http方式推送镜像,通过配置选项来取消这个限制。

    [root@localhost .docker]# cat /etc/docker/daemon.json 
    {"registry-mirrors": ["https://***.mirror.aliyuncs.com"],"insecure-registries": ["192.168.10.101:5000"]
    }
    
  6. 重启docker

    systemctl restart docker
    
  7. push推送至私服仓库

    docker push 192.168.10.101:5000/ubuntu:0.1
    
  8. curl验证,pull到本地并运行

    [root@localhost .docker]# curl -XGET http://192.168.10.101:5000/v2/_catalog
    {"repositories":["ubuntu"]}docker pull 192.168.10.101:5000/ubuntu:0.1
    docker run -it 镜像ID /bin/bash
    

3、本地镜像发布到Docker Hub仓库

DockerHub是Docker官方提供的公共镜像仓库,地址为https://hub.docker.com。

  1. 登录

    docker login
    

    输入用户名、密码完成登录。本地用户目录下自动创建.docker/config.json文件用于保存用户的认证信息。

  2. 使用docker [image] push命令上传镜像到仓库, 默认上传到Docker Hub 官方仓库(需要登录)。

这篇关于4.Docker本地镜像发布至阿里云仓库、私有仓库、DockerHub的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/945993

相关文章

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体