【云原生-Docker】Docker介绍
迪丽瓦拉
2025-05-30 10:48:01
0

前面大概介绍了下

Docker组成

Docker大部分的操作都围绕着它的三大核心概念:镜像、容器和仓库。因此,准确把握这三大核心概念对于掌握Docker技术尤为重要。
在这里插入图片描述

(1)镜像( image )

Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了Apache应用程序(或用户需要的其他软件)。可以把它称为一个Apache镜像。镜像是创建Docker容器的基础。通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用。

(2)容器( container)

Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例。它可以启动、开始、停止、删除,而这些容器都是彼此相互隔离、互不可见的。可以把容器看作一个简易版的Linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等)以及运行在其中的应用程序打包而成的盒子。

注意:
镜像自身是只读的。容器从镜像启动的时候,会在镜像的最上层创建一个可写层。

(3)仓库( repository)

Docker仓库类似于代码仓库,是Docker集中存放镜像文件的场所。有时候我们会将Docker仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器是存放仓库的地方,其上往往存放着多个仓库。每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签(tag)来进行区分。例如存放Ubuntu操作系统镜像的仓库,被称为Ubuntu仓库,其中可能包括16.04、18.04等不同版本的镜像。仓库注册服务器的示例
在这里插入图片描述

根据所存储的镜像公开分享与否,Docker仓库可以分为公开仓库(Public)和私有仓库(Private)两种形式。目前,最大的公开仓库是官方提供的Docker Hub,其中存放着数量庞大的镜像供用户下载。国内不少云服务提供商(如腾讯云、阿里云等)也提供了仓库的本地源,可以提供稳定的国内访问。
当然,用户如果不希望公开分享自己的镜像文件,Docker也支持用户在本地网络内创建一个只能自己访问的私有仓库。
当用户创建了自己的镜像之后就可以使用push命令将它上传到指定的公有或者私有仓库。这样用户下次在另外一台机器上使用该镜像时,只需要将其从仓库上pull下来就可以了。

可以看出,Docker利用仓库管理镜像的设计理念与Git代码仓库的概念非常相似,实际上Docker设计上借鉴了Git的很多优秀思想。

Docker架构图

在这里插入图片描述
Docker Daemon: 守护进程,用来监听Docker API的请求并管理对象,例如镜像、容器、网络和卷,守护进程还可以与其他的守护进程通信以管理Docker服务
docker build: 可以用来构建镜像。
docker pull: 拉取镜像,如果本地仓库存在直接使用,否则从远程仓库拉取。
docker run: 镜像创建容器。

相关内容

热门资讯

处理大数据的最佳方式——con... css属性处理大数据 content-visibility——只需一行CSS代码,让长...
Vuex由浅入深详细讲解 目录前言一,理解Vuex1.1 Vuex是什么1.2 Vuex概述1.3 Vuex统一...
Vector - CAPL -... 摸鱼聊天、答疑解惑首选之地 --- 车载网络哪些事儿你是否还在为VT板卡系统昂贵而发愁?...
qt5.6(mingw) 编译... 具体版本和操纵参考官网win msvc版本编译,Qt5.6编译PCL环境 备注...
【论文速览】引入motion ... 文章目录研究背景解决思路实验效果思考参考资料 收录于 ECCV 2020,代码地址...
字符串 - 二进制和文本字符串... 1.应用场景 主要用于探究字符串中的二进制和文本字符串,以及它们的区别和应用场景。2....
windows下使用gitea... windows下使用gitea搭建git服务器 详细过程 1、简述 使用过好几个git服务器...
LCHub:一句话让 AI 替... LCHub 3 月 18 日消息,这几天,GPT-4 接入微软 Office 全家桶的消息传遍了互联...
STM32模拟SPI控制NRF... STM32模拟SPI控制NRF24L01发送和接收 NRF24L01是一款2.4Ghz ISM频段无...
Vue路由及状态管理 1,Vue引入路由配置 在Vue中,我们可以通过vue-router路...
Lua 开发过程中常见坑 Lua 开发过程中常见坑 Lua next return _G.next( tb ) =&#...
蓝桥c++数位排序(运用pai... 问题描述 小蓝对一个数的数位之和很感兴趣, 今天他要按照数位之和给数排序。当 两个数各个数位之和不同...
3Dmax开孔打洞圆孔洞的几种... 最常见的几种打洞方法及技巧和注意事项总结如下。除了布尔运算外其余几种都是在可编辑多边形模式下进行的&...
04 - 进程参数编程 ---- 整理自狄泰软件唐佐林老师课程 查看所有文章链接:(更新中&...
【Git使用学习】本地创建项目... 记录学习过程,一波三折。以【Vue+CesiumJS学习(1&#...
电子拣货标签1代系统简介 CK_Label_v1 ​一、产品参数 1. 电池供电版 产品型号 CK_Label_v1 尺...
为什么写分页器的时候要用当前页... 比方说总共有100条数据(编号从0起算就是0到99),每次...
古典密码学 主要划分方式及其分类按密钥方式划分:对称,非对称按明文处理方式分...
C# 项目名称为什么是xxx.... 在 C# 中,通常将项目命名为“xxx.xxx”的形式,其中第一个“xx...
【Java】UDP网络编程 文章目录前言DatagramSocketDatagramPacket注意事项与区别代码演示 前言 U...