学习docker第三弹------Docker镜像以及推送拉取镜像到阿里云公有仓库和私有仓库

docker目录

  • 1 Docker镜像
    • dockers镜像的进一步理解
  • 2 Docker镜像commit操作实例
    • 案例内容是ubuntu安装vim
  • 3 将本地镜像推送至阿里云
  • 4 将阿里云镜像下载到本地仓库
  • 5 后记

1 Docker镜像

镜像,是docker的三件套之一(镜像、容器、仓库),是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容。打包好的运行环境就是image镜像文件。

我们只有通过这个镜像文件才能生成Docke容器实例。(就好像Java需要先有一个类,然后才能new一个对象。)

dockers镜像的进一步理解

镜像是一层一层的,称其为分层的镜像。比如我们在pull一个镜像的时候,它就是一层一层进行拉取下载的。

docker pull nginx

在这里插入图片描述

这里就不得不提到 UnionFS(联合文件系统)了,它是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。

就像一个花卷一样,一层一层的卷起来。

docker镜像实际上是由一层一层的文件系统组成的,这种层级的文件系统UnionFS。

在这里插入图片描述
镜像分层最大的一个优点就是共享资源,方便复制迁移,就是为了复用。比如有多个镜像都从相同的 A 镜像构建而来,那么我们的 Docker Host 只需要在磁盘上保存一份 A 镜像即可。

Docker镜像层都是只读的,容器层是可写的。当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫做“镜像层”。
在这里插入图片描述

2 Docker镜像commit操作实例

docker commit 提交容器副本使之成为一个新的镜像
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]

案例内容是ubuntu安装vim

第一步,从Hub上下载ubuntu镜像到本地并运行成功

docker images

第二步,查看默认ubtuntu是否带vim命令

docker run -it ubuntu /bin/bash

在这里插入图片描述
第三步,外网连通情况下,安装vim

apt-get update

在这里插入图片描述

apt-get -y install vim

在这里插入图片描述

vim a.txt

在这里插入图片描述

第四步,安装完成后,commit我们自己的新镜像

docker commit -m="add vim cmd" -a="ada" 镜像ID 镜像名称:版本号

在这里插入图片描述

第五步,启动我们的新镜像并和原来的对比
在这里插入图片描述

3 将本地镜像推送至阿里云

本地镜像ubuntu_vim:1.0
阿里云开发者平台:https://promotion.aliyun.com/ntms/act/kubernetes.html
在这里插入图片描述
选择控制台,进入容器镜像服务
在这里插入图片描述

选择个人实例
在这里插入图片描述

命名空间
在这里插入图片描述

仓库名称
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进入管理界面获得脚本
在这里插入图片描述

将镜像推送到阿里云
在这里插入图片描述
在这里插入图片描述

4 将阿里云镜像下载到本地仓库

直接复制粘贴脚本文件就可以。
在这里插入图片描述
在这里插入图片描述

5 后记

三米粥铺有的店好吃,有的店不好吃!

BB啊,如果我的文档对您有帮助的话,记得帮我点赞赞~

谢谢您~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/57608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot+Vue+MySQL的实践性教学系统

系统展示 用户前台界面 后台界面 系统背景 随着信息技术的快速发展,企业对于高效、智能的管理系统需求日益迫切。传统的管理系统大多采用单机版或C/S架构,存在操作复杂、维护困难、数据共享性差等问题。而基于SpringBootVueMySQL的全栈管理系统&#xff…

【10分钟本地部署大语言模型】借助1Panel、MaxKb、Ollama快速部署大语言模型(qwen、llama等)及知识库

前言: 本文介绍一种快速在Linux服务器(windows使用wsl也可以)上部署大语言模型(含知识库)的方式。 核心内容如下: 1Panel: 开源的Linux 服务器运维管理面板,通过该面板安装ollama和…

hivesql学习大纲

引言 - 简述Hive的用途和特点 - 为什么学习HiveSQL 第一部分:Hive基础 1.1 Hive简介 - 定义和架构 - Hive与传统数据库的区别 - Hive的应用场景 1.2 Hive环境搭建 - 所需环境和依赖 - 安装和配置Hive - 启动和停止Hive服务 1.3 Hive数据模型 - 数据库&#xff0…

STM32与ESP8266实现串口通信

在嵌入式系统设计中,经常需要将微控制器与Wi-Fi模块相结合,以实现无线通信功能。STM32是一款强大的微控制器,而ESP8266是一款流行的Wi-Fi模块。本文将详细介绍如何使用STM32通过串口与ESP8266实现通信,包括硬件连接、软件配置和代…

Serv00 免费虚拟主机 零成本搭建 PHP / Node.js 网站

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 Serv00 是一个提供免费虚拟主机的平台,包含了 3GB 的存储空间和 512MB 的内存空间,足够我们搭建一个 1IP 的小网站了。同时他还不限制每月的流量,并提供了 16 个数据库&…

进程间通信(一)管道

文章目录 进程间通信进程间通信概述进程间通信的方式管道通信示例--基于管道的父子进程通信示例--使用管道进程兄弟进程通信 管道的读写特性示例--不完整管道(读一个写端关闭的管道)示例--不完整管道(写一个读端关闭的管道) 标准库…

PyQt 入门教程(3)基础知识 | 3.1、使用QtDesigner创建.ui文件

文章目录 一、使用QtDesigner创建.ui文件1、创建.ui文件2、生成.py文件3、使用新生成的.py文件4、编辑新生成的.py文件 一、使用QtDesigner创建.ui文件 1、创建.ui文件 打开PyCharm,使用自定义外部工具QtDesigner创建mydialog.ui文件,如下: …

前端面试题-token的登录流程、JWT

这是我的前端面试题的合集的第一篇,后面也会更新一些笔试题目。秋招很难,也快要结束了。但是,不要放弃,一起加油^_^ 一、token的登录流程 1.客户端用账号密码请求登录 2.服务端收到请求,需要去验证账号密码 3.验证成…

大话网络协议:HTTPS协议和HTTP协议有何不同?为什么HTTPS更安全

大家现在访问网络,浏览网页,注意一下的话,网址前面基本上都是一个 https:// 的前缀,这里就是说明这个网址所采用的协议是 https 协议。那么具体应该怎么理解 https 呢? 本文我们就力争能清楚地解释明白这个我们目前应该最广的协议。 理解HTTP协议 要解释 https 协议,当…

[mysql]聚合函数GROUP BY和HAVING的使用和sql查询语句的底层执行逻辑

#GROUP BY的使用 还是先从需求出发,我们现在想求员工表里各个部门的平均工资,最高工资 SELECT department_id,AVG(salary) FROM employees GROUP BY department_id 我们就会知道它会把一样的id分组,没有部门的就会分为一组,我们也可以用其他字段来分组,我们想查询不同jb_id…

动力电池中的基础知识总结

动力电池基础 基本定义 电池的分类方式多样,按工作特性和储存方式分类 一次电池(Primary Battery):只能进行一次放电(disposable or single-use batteries),放电后不能通过充电的方式使其恢复…

Postgresql pgsql 插件之postgis 安装配置

相关链接: pgsql编译安装 一、说明 postgis是pgsql最强大的几个插件之一,可以用于地理信息系统(gis)的搭建 二、插件安装启动 由于我的pgsql是编译安装的,所以插件也是编译安装,更加灵活。 1.进入到源…

草地杂草数据集野外草地数据集田间野草数据集YOLO格式VOC格式目标检测计算机视觉数据集

一、数据集概述 数据集名称:杂草图像数据集 数据集是一个包含野草种类的集合,其中每种野草都有详细的特征描述和标记。这些数据可以包括野草的图片、生长习性、叶片形状、颜色等特征。 1.1可能应用的领域 农业领域: 农业专家和农民可以利用这一数据集来…

Python 自编码器(Autoencoder)算法详解与应用案例

目录 Python 自编码器(Autoencoder)算法详解与应用案例引言一、自编码器的基本原理1.1 自编码器的结构1.2 自编码器的类型 二、Python中自编码器的面向对象实现2.1 Autoencoder 类的实现2.2 Trainer 类的实现2.3 DataLoader 类的实现 三、案例分析3.1 手…

IDEA无法生成自动化序列serialVersionUID及无法访问8080端口异常的解决方案

作者:CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境:IDEA 今天是1024程序员节,先祝大家节日快乐! 无法生成自动化序列serialVersionUID 如果我们在idea当中想要通过generate来生成自动化序列,如下图…

BIOS、UEFI、PE

1. BIOS、UEFI 和 PE 的区别 BIOS (Basic Input/Output System) BIOS 是一种固件接口,位于计算机的主板上,用于在操作系统加载之前执行硬件初始化。它是旧的标准,最早出现在 IBM PC 兼容机中,通常以文本模式呈现。BIOS 依赖于 MBR…

Nest.js 实战 (十五):前后端分离项目部署的最佳实践

☘️ 前言 本项目是一个采用现代前端框架 Vue3 与后端 Node.js 框架 Nest.js 实现的前后端分离架构的应用。Vue3 提供了高性能的前端组件化解决方案,而 Nest.js 则利用 TypeScript 带来的类型安全和模块化优势构建了一个健壮的服务端应用。通过这种技术栈组合&…

Egg.js 项目的合理 ESLint 配置文件模板

Egg.js 项目的合理 ESLint 配置文件模板 安装依赖 npm install eslint babel/eslint-parser eslint-plugin-import eslint-plugin-promise eslint-plugin-node --save-dev extends: 扩展了 eslint-config-egg 以及其他一些常用的插件配置。 parser: 使用 babel/eslint-parse…

如何重置MySQL的root密码

前言 在使用MySQL数据库的过程中,可能会遇到忘记root用户密码的情况。由于root用户拥有最高权限,一旦忘记了这个密码,就无法通过其他用户来重置。本文将详细介绍如何在Windows和Linux环境下重设MySQL root用户的密码。 适用环境 操作系统:Windows, LinuxMySQL版本:5.7及…

智慧升级,知识无界:十大搭建知识库软件助你前行

在知识爆炸的时代,如何高效地管理、整合与利用信息,成为了个人与企业发展的核心竞争力。智慧升级,意味着我们不仅要掌握丰富的知识,更要学会运用工具,让知识无界流通,助力个人成长与企业创新。以下是精心挑…