Docker 组件如何协作?- 每天5分钟玩转容器技术(8)

还记得我们运行的第一个容器吗?现在通过它来体会一下 Docker 各个组件是如何协作的。

容器启动过程如下:

  1. Docker 客户端执行 docker run 命令。
  2. Docker daemon 发现本地没有 httpd 镜像。
  3. daemon 从 Docker Hub 下载镜像。
  4. 下载完成,镜像 httpd 被保存到本地。
  5. Docker daemon 启动容器。

docker images 可以查看到 httpd 已经下载到本地。

docker ps 或者 docker container ls 显示容器正在运行。

小结

Docker 借鉴了集装箱的概念。标准集装箱将货物运往世界各地,Docker 将这个模型运用到自己的设计哲学中,唯一不同的是:集装箱运输货物,而 Docker 运输软件。

每个容器都有一个软件镜像,相当于集装箱中的货物。容器可以被创建、启动、关闭和销毁。和集装箱一样,Docker 在执行这些操作时,并不关心容器里到底装的什么,它不管里面是 Web Server,还是 Database。

用户不需要关心容器最终会在哪里运行,因为哪里都可以运行。

开发人员可以在笔记本上构建镜像并上传到 Registry,然后 QA 人员将镜像下载到物理或虚拟机做测试,最终容器会部署到生产环境。

使用 Docker 以及容器技术,我们可以快速构建一个应用服务器、一个消息中间件、一个数据库、一个持续集成环境。因为 Docker Hub 上有我们能想到的几乎所有的镜像。

不知大家是否意识到,潘多拉盒子已经被打开。容器不但降低了我们学习新技术的门槛,更提高了效率。

如果你是一个运维人员,想研究负载均衡软件 HAProxy,只需要执行docker run haproxy,无需繁琐的手工安装和配置既可以直接进入实战。

如果你是一个开放人员,想学习怎么用 django 开发 Python Web 应用,执行 docker run django,在容器里随便折腾吧,不用担心会搞乱 Host 的环境。

不夸张的说:容器大大提升了 IT 人员的幸福指数。

时间: 2024-08-08 13:54:12

Docker 组件如何协作?- 每天5分钟玩转容器技术(8)的相关文章

Docker 架构详解 - 每天5分钟玩转容器技术(7)

Docker 的核心组件包括: Docker 客户端 - Client Docker 服务器 - Docker daemon Docker 镜像 - Image Registry Docker 容器 - Container Docker 架构如下图所示: Docker 采用的是 Client/Server 架构.客户端向服务器发送请求,服务器负责构建.运行和分发容器.客户端和服务器可以运行在同一个 Host 上,客户端也可以通过 socket 或 REST API 与远程的服务器通信. Dock

每天5分钟玩转容器技术 整理目录

原 写在最前面 - 每天5分钟玩转容器技术(1) 容器生态系统 - 每天5分钟玩转容器技术(2) 容器生态系统 (续) - 每天5分钟玩转容器技术(3) 运行第一个容器 - 每天5分钟玩转容器技术(4) [视频]运行第一个容器 - 每天5分钟玩转容器技术(5) 容器 What, Why, How - 每天5分钟玩转容器技术(6) Docker 架构详解 - 每天5分钟玩转容器技术(7) Docker 组件如何协作?- 每天5分钟玩转容器技术(8) 最小的镜像 - 每天5分钟玩转容器技术(9) b

写在最前面 - 每天5分钟玩转容器技术(1)

<每天5分钟玩转容器技术>是一个有关容器技术的教程,有下面两个特点: 系统讲解当前最流行的容器技术.从容器的整个生态环境到各个具体的技术,从整体到细节逐一讨论. 重实践并兼顾理论.从实际操作的角度带领大家学习容器技术. 为什么要写这个? 简单回答是:容器技术非常热门,但门槛高. 容器技术是继大数据和云计算之后又一炙手可热的技术,而且未来相当一段时间内都会非常流行. 对 IT 行业来说,这是一项非常有价值的技术.而对 IT 从业者来说,掌握容器技术是市场的需要,也是提升自我价值的重要途径. 拿我

容器生态系统 (续) - 每天5分钟玩转容器技术(3)

容器生态系统包含核心技术.平台技术和支持技术三个方面.上一节我们讨论了核心技术,今天讨论另外两个部分. 容器平台技术 容器核心技术使得容器能够在单个 host 上运行.而容器平台技术能够让容器作为集群在分布式环境中运行. 容器平台技术包括容器编排引擎.容器管理平台和基于容器的 PaaS. 容器编排引擎 基于容器的应用一般会采用微服务架构.在这种架构下,应用被划分为不同的组件,并以服务的形式运行在各自的容器中,通过 API 对外提供服务.为了保证应用的高可用,每个组件都可能会运行多个相同的容器.这

容器生态系统 - 每天5分钟玩转容器技术(2)

对于像容器这类平台级别的技术,通常涉及的知识范围会很广,相关的软件,解决方案也会很多,初学者往往容易迷失. 那怎么办呢? 我们可以从生活经验中寻找答案.当我们去陌生城市旅游想了解一下这个城市一般我们会怎么做? 我想大部分人应该会打开手机看一下这个城市的地图: 城市大概的位置和地理形状是什么? 都由哪几个区或县组成? 主要的交通干道是哪几条? 同样的道理,学习容器技术我们可以先从天上鸟瞰一下: 容器生态系统包含哪些不同层次的技术? 不同技术之间是什么关系? 哪些是核心技术哪些是辅助技术? 首先得对

运行第一个容器 - 每天5分钟玩转容器技术(4)

为了让大家对容器有个感性认识,我们将尽快让一个容器运行起来. 首先我们需要搭建实验环境. 环境选择 容器需要管理工具.runtime 和操作系统,我们的选择如下: 管理工具 - Docker Engine因为 Docker 最流行使用最广泛. runtime - runcDocker 的默认 runtime 操作系统 - Ubuntu虽然存在诸如 CoreOS 的容器 OS,因考虑到我们目前处于初学阶段,选择大家熟悉的操作系统更为合适.等具备了扎实的容器基础知识后再使用容器 OS 会更有利. 安

构建镜像 - 每天5分钟玩转容器技术(12)

对于 Docker 用户来说,最好的情况是不需要自己创建镜像.几乎所有常用的数据库.中间件.应用软件等都有现成的 Docker 官方镜像或其他人和组织创建的镜像,我们只需要稍作配置就可以直接使用. 使用现成镜像的好处除了省去自己做镜像的工作量外,更重要的是可以利用前人的经验.特别是使用那些官方镜像,因为 Docker 的工程师知道如何更好的在容器中运行软件. 当然,某些情况下我们也不得不自己构建镜像,比如: 找不到现成的镜像,比如自己开发的应用程序. 需要在镜像中加入特定的功能,比如官方镜像几乎

容器 What, Why, How - 每天5分钟玩转容器技术(6)

学习任何东西都可以按照3W的框架进行,容器技术也是一样,先回答 What.Why 和 How 这三个问题. What - 什么是容器? 容器是一种轻量级.可移植.自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行.开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机.物理服务器或公有云主机上运行. 容器与虚拟机 谈到容器,就不得不将它与虚拟机进行对比,因为两者都是为应用提供封装和隔离. 容器由两部分组成: 应用程序本身 依赖:比如应用程序需要的库或其他软

base 镜像 - 每天5分钟玩转容器技术(10)

上一节我们介绍了最小的 Docker 镜像本节讨论 base 镜像. base 镜像有两层含义 不依赖其他镜像从 scratch 构建. 其他镜像可以之为基础进行扩展. 所以能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像比如 Ubuntu, Debian, CentOS 等. 我们以 CentOS 为例考察 base 镜像包含哪些内容.下载镜像 docker pull centos 查看镜像信息 镜像大小不到 200MB. 等一下一个 CentOS 才 200MB