当前位置: 首页 > news >正文

第一章 Docker入门

Docker是虚拟化容器引擎中非常重要的一员。现在让我们开始学习Docker。

1.1、Docker介绍

        Docker是一个开源的虚拟化容器引擎,让开发者可以打包他们的应用及依赖到一个可移植的容器中,然后发布到Linux环境中以实现虚拟化的管理。这些 Linux环境包括CentOS、Redhat、Ubuntu等。在Windows上也可以部署Docker,但不推荐。

        Docker 中的虚拟化容器完全使用“沙箱”机制,相互之间不会有任何接口。可以把这些容器理解为是逻辑隔离的。

        一个完整的 Docker 由以下几部分组成:

  • Docker客户端。
  • Docker守护进程(Daemon)。
  • Docker 镜像(lmage)。
  • Docker容器(Container)。
  • 镜像仓库(Repository)。

        Docker 实现了应用代码与底层运行环境之间的耦合。它可以将一个复杂系统中的各个模块进行容器化,同时提供了负载均衡和失败迁移功能。应用的容器化,满足了敏捷开发、动态迁移、标准化的要求,从而大大提高了效率。


1.2、Docker的体系架构与基本概念

        Docker是一个客户端服务器(Client-Server)架构。Docker 客户端和Docker守护进程交流,而Docker守护进程是运作Docker 的核心,起着非常重要的作用(如构建、运行和分发Docker容器等)。

        我们在使用Docker 创建容器时需要有镜像。镜像是一个只读的模板。而存放镜像的地方叫作“镜像仓库”。镜像仓库,可以是公有镜像仓库(例如官方提供的公有镜像仓库Docker Hub),也可以是私有镜像仓库(例如 Harbor)。

        图 1-2 展示了Docker的体系架构

表1-1列出了Docker体系架构中的组成部分及其功能特性。

表 1-1

组成部分功能特性
Docker客户端通常指Docker 提供的命令行工具,是Docker 最基本的用户接口。用户通过Docker 客户端提交Docker指令,Docker守护进程接收并执行该指令。Docker也有图形化的客户端工具
Docker守护进程在Docker宿主机上运行Docker,实际上运行的是 Docker守护进程。用户并不直接和Docker守护进程交互,而是通过 Docker客户端的命令来和它进行交互
Docker镜像一个Docker镜像是一个只读的模板。例如,一个Docker镜像可以包含一个CentOS的操作系统、一个MySQL的数据库和一个Tomcat的应用服务器。Docker镜像被用来创建Docker容器,Docker提供了一个简单的方式来构建一个新的镜像或更新一个已经存在的镜像。用户也可以从镜像仓库下载其他人已经创建好的Docker 镜像
Docker容器通过Docker镜像可以创建Docker容器。Docker的容器可以保存任何东西,而这些东西是运行一个应用所必需的。可以把.Docker 容器看成是一个虚拟机。Docker容器可以被运行、开启、停止、移动和删除。每一个容器都是一个分离的、安全的应用平台。Docker容器是Docker的运行组件
镜像仓库

Docker的镜像仓库用于保存Docker镜像,它可以是公共的存储地方,也可以是私有的存储地方。

1、公共的镜像仓库由Docker Hub提供,它提供了一个用户可以使用的已有镜像的集合。这些集合中的镜像可以是你自己创建的,也可以是别人创建的。

2、私有的镜像仓库需要自己在私有环境中搭建,例如在企业内网中自行搭建。Harbor是一个典型的私有的镜像仓库

相关文章:

  • Mysql查询分析工具Explain的使用
  • Django里choices字段使用中文使用
  • 数据库索引推荐大PK,DBdoctor和资深DBA的终极较量
  • Hbase布隆过滤器
  • 手机丢失不惊慌,华为手机已升级至楼层级设备查找!
  • C++作业第四天
  • Handler通信机制
  • [论文笔记]Mixtral of Experts
  • 新版FMEA培训的应用误区是如何产生的?
  • XML解析库tinyxml2库使用详解
  • Windows系统安装Docker环境详细教程
  • Armbian OS(基于ubuntu24) 源码编译mysql 5.7
  • 路径规划 | 图解遗传(GA)算法(附ROS C++仿真)
  • 传神论文中心|第11期人工智能领域论文推荐
  • RPG Maker MZ中被你忽略的干货操作——独立开关和“开关”在事件页中的关系
  • [Vue CLI 3] 配置解析之 css.extract
  • ES2017异步函数现已正式可用
  • input的行数自动增减
  • java正则表式的使用
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Netty源码解析1-Buffer
  • Shell编程
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 成为一名优秀的Developer的书单
  • 将 Measurements 和 Units 应用到物理学
  • 经典排序算法及其 Java 实现
  • 看域名解析域名安全对SEO的影响
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 无服务器化是企业 IT 架构的未来吗?
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​secrets --- 生成管理密码的安全随机数​
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • !!Dom4j 学习笔记
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #QT(串口助手-界面)
  • (web自动化测试+python)1
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (黑马C++)L06 重载与继承
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (排序详解之 堆排序)
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (转)scrum常见工具列表
  • (转)视频码率,帧率和分辨率的联系与区别
  • .NET C# 操作Neo4j图数据库
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET Core 发展历程和版本迭代
  • .Net Winform开发笔记(一)
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .net的socket示例
  • .net连接oracle数据库