《Docker生产环境实践指南》——第1章 入门 1.1 术语

简介: 建立Docker生产环境系统的首要任务,是以一个有助于想象各组件如何相互配合的方式来理解其术语。与其他快速发展的技术生态系统一样,我们可以预见,Docker野心勃勃的市场营销、不完善的文档以及过时的博客文章将造成使用者对各个工具职责理解上的混乱。

本节书摘来自异步社区《Docker生产环境实践指南》一书中的第1章,第1.1节,作者: 【美】Joe Johnston(乔•约翰斯顿)著,更多章节内容可以访问云栖社区“异步社区”公众号查看

第1章 入门

建立Docker生产环境系统的首要任务,是以一个有助于想象各组件如何相互配合的方式来理解其术语。与其他快速发展的技术生态系统一样,我们可以预见,Docker野心勃勃的市场营销、不完善的文档以及过时的博客文章将造成使用者对各个工具职责理解上的混乱。

我们将在本章中定义贯穿全书的术语和概念,而非提供一份统一的Docker百科全书。通常情况下,我们的定义与生态系统中的大体一致,但如果你所阅读的博客文章中使用了不同的术语也不用太过惊讶。

在本章中,我们将介绍在生产环境中运行Docker的核心概念以及不涉及具体技术的容器常识。在随后的章节中,我们将讨论真实世界的生产环境用例,并详细说明其组件和供应商信息。

1.1 术语

下面让我们来看一下本书所采用的Docker术语。

1.1.1 镜像与容器
镜像是指文件系统快照或tar包。
容器是指镜像的运行态。
1.1.2 容器与虚拟机
虚拟机持有整个操作系统和应用程序的快照。
虚拟机运行着自己的内核。
虚拟机可以运行Linux之外的其他操作系统。
容器只持有应用程序,不过应用程序的概念可以延伸到整个Linux发行版。
容器共享宿主机的内核。
容器只能运行Linux,不过在同一宿主机上运行的每个容器都可包含不同的发行版。
1.1.3 持续集成/持续交付
在应用程序新代码提交或触发其他条件时,系统自动构建新镜像并进行部署。

1.1.4 宿主机管理
设置/配备一台物理服务器或虚拟机以便用于运行Docker容器的过程。

1.1.5 编排
编排(orchestration,也称编配)这个术语在Docker生态系统中有多种含义。通常情况下,它包括调度和集群管理,不过有时也包括了宿主机管理。

在本书中,我们将编排作为一个松散的总称,包括容器调度的过程、集群的管理、容器的链接(发现),以及网络流量路由。或者换句话说,编排是个控制器进程,用于决定在哪里运行容器,以及如何让集群知道可用的服务。

1.1.6 调度
调度用于决定哪些容器可以以给定的资源约束(如CPU、内存和IO)运行在哪些宿主机上。

1.1.7 发现
容器如何公开服务给集群,以及发现如何查找其他服务并与之通信的过程。举个简单的用例:一个网站应用容器发现如何连接到数据库服务。

Docker文档中的发现是指将容器链接在一起,不过在生产级系统中,通常使用的是更复杂的发现机制。

1.1.8 配置管理
配置管理过去常常指的是Docker出现之前的自动化工具,如Chef和Puppet。大多数的DevOps团队正在转移到Docker上,以消除这类配置管理系统的复杂度。

在本书的示例中,配置管理工具只用于配备具有Docker和少量其他东西的宿主机。

相关文章
|
1月前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
81 5
|
2月前
|
弹性计算 运维 持续交付
探索Docker容器化技术及其在生产环境中的应用
探索Docker容器化技术及其在生产环境中的应用
109 5
|
1月前
|
Linux 持续交付 Docker
掌握Docker:从入门到实践
Docker 是一个开源容器引擎,允许开发者将应用及其依赖打包成可移植的容器,在任意 Linux 机器上运行。本文从基本概念入手,详细介绍 Docker 的安装、基本操作、镜像构建及 Docker Compose 的使用,并通过实战案例展示如何部署 Web 应用、构建微服务架构及实现 CI/CD。通过学习,你将掌握 Docker 的核心功能,提升应用开发和部署效率。
|
6天前
|
运维 持续交付 虚拟化
docker入门详解!!!
本文介绍了容器技术的发展历程,从物理机到虚拟化再到容器化,重点讲解了Docker的诞生及其优势。Docker通过轻量级的容器技术,实现了资源的高效利用、快速启动、环境一致性、持续交付和部署等优点。文章还详细解析了Docker的架构和工作原理,包括Docker Daemon、REST接口、Docker Client等组件,以及容器与虚拟机的差异。
38 2
|
13天前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
22 3
|
13天前
|
存储 缓存 Java
Java应用瘦身记:Docker镜像从674MB优化至58MB的实践指南
【10月更文挑战第22天】 在容器化时代,Docker镜像的大小直接影响到应用的部署速度和运行效率。一个轻量级的Docker镜像可以减少存储成本、加快启动时间,并提高资源利用率。本文将分享如何将一个Java基础Docker镜像从674MB缩减到58MB的实践经验。
26 1
|
18天前
|
Ubuntu Shell 开发者
Docker入门:轻松开始容器化之旅
【10月更文挑战第17天】Docker 是一种开源的应用容器引擎,它让开发者能够“一次构建、到处运行”。Docker 通过容器化技术将应用程序及其依赖打包在一起,从而确保应用在任何环境中都能一致地运行。本文将为新手用户提供一个全面的Docker入门指南,包括基本概念、优势、安装配置以及如何创建和管理容器。
41 2
|
25天前
|
存储 运维 云计算
探索Docker容器化:从入门到实践
在这个快速发展的云计算时代,Docker容器化技术正在改变应用的开发、部署和管理方式。本文旨在为初学者提供一个关于Docker的全面入门指南,并通过实践案例展示Docker在实际开发中的应用。我们将一起了解Docker的核心概念、基本操作、网络和存储,以及如何构建和部署一个简单的Web应用。无论你是开发者还是运维人员,本文都会帮助你快速掌握Docker的核心技能。
|
1月前
|
Kubernetes Cloud Native Docker
云原生入门:Kubernetes和Docker的协同之旅
【10月更文挑战第4天】在这篇文章中,我们将通过一次虚拟的旅行来探索云原生技术的核心——Kubernetes和Docker。就像乘坐一艘由Docker驱动的小船启航,随着波浪(代码示例)起伏,最终抵达由Kubernetes指挥的宏伟舰队。这不仅是一段技术上的旅程,也是理解现代云架构如何支撑数字世界的冒险。让我们扬帆起航,一探究竟!
|
1月前
|
Ubuntu Linux 虚拟化
Docker入门实践(一)
Docker入门实践(一)