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

相关文章

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2