第一章 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是一个典型的私有的镜像仓库 |

相关推荐
码视野2 小时前
基于 Vue3 + Element Plus 的【智慧新能源汽车充电桩运维调度与分时共享租赁系统】设计与实现(附完整源码与PRD)
运维·人工智能·汽车·vue3
qq_426003962 小时前
【UI自动化测试】UI自动化报错解决方案
运维·ui·自动化
网安蟹佬霸2 小时前
WAF绕过技术实战:从规则检测到编码绕过全指南(2026最新版,附Payload集与自动化脚本)
运维·安全·网络安全·架构·自动化·网安
小杨不想秃头2 小时前
信息安全工程师教程第二章密码学
运维·服务器·密码学
I'mChloe2 小时前
WGCLOUD怎么监控多台服务器?从Server、Agent 部署到监控面板实战
运维·服务器
Android系统攻城狮3 小时前
Linux PipeWire深度解析之pw_init调用流程与实战(八十三)
linux·运维·服务器·音频进阶·pipewire音频进阶
国科安芯3 小时前
轨道供电韧性:ASP4644四通道降压架构在低轨卫星平台电源管理中的适用性分析
运维·网络·数据库·嵌入式硬件·架构·状态模式·低轨卫星星座
Python自动化直播4 小时前
周末测试直播自动化时,发现一个棘手的并发问题
运维·自动化
lxw20230271164 小时前
k8s的控制器
云原生·容器·kubernetes
zbyyd4 小时前
Linux 进程管理详解:从概念到实战
linux·运维·服务器