读书笔记-第一本Docker书:Docker简介

Prudence ·
更新时间:2024-09-21
· 992 次阅读

Docker时一个能够把开发的应用程序自动部署到容器的开源引擎。Docker的核心组件:Docker客户端和服务器(也称为Docker引擎),Docker镜像,Registry,Docker容器。

Docker客户端和服务器

Docker是一个客户端/服务器架构的程序。Docker客户端只需向Docker服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。Docker守护进程有时也称为Docker引擎。Docker提取了一个命令行工具docker以及一整套RESTful API来与守护进程交互。用户可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。
在这里插入图片描述

Docker容器

Docker可以帮用户构建和部署容器,用户只需要把自己的应用程序或服务打包放进容器即可。容器是基于镜像启动起来的,容器中可以运行一个或多个进程。镜像是Docker生命周期中的构建或打包阶段,而容器则是启动或执行阶段。Docker容器就是一个镜像格式、一系列标准的操作、一个执行环境。每个容器都包含一个软件镜像,也就是容器的货物。容器里的软件镜像可以进行一些操作,例如,镜像可以被创建、启动、关闭、重启以及销毁。

Docker镜像

镜像是构建Docker世界的基石。用户基于镜像来运行自己的容器。镜像也是Docker生命周期中的“构建”部分。镜像是基于联合文件系统的一种层式的结构,由一系列指令一步一步构建出来。例如:添加一个文件,执行一个命令,打开一个端口。也可以把镜像当作容器的“源代码”。镜像体积很小,易于分享、存储和更新。

Registry

Docker用Registry来保存用户构建的镜像。Registry分为公共和私有两种。Docker公司运营的公共Registry叫做Docker Hub。用户也可以在Docker Hub上保存自己的私有镜像。例如,包含源代码或专利信息等需要保密的镜像,或者只在团队或组织内部可见的镜像。用户甚至可以架设自己的私有Registry。

Docker与配置管理

Docker包含一套镜像构建和镜像管理的解决方案。镜像是分层的,可以对其进行迅速的迭代。Docker的特性能够帮助减轻许多传统镜像管理中的麻烦。虽然现在还难以确定Docker是否可以完全取代配置管理工具,但是从幂等性和内省性来看,Docker确实能够获得非常好的效果。Docker本身还是需要在主机上进行安装、管理和部署的。而主机也需要被管理起来。Docker容器需要编配、管理和部署,也经常需要与外部服务和工具进行通信,而这些恰恰是配置管理工具所擅长的。

Docker技术组件包括:一个原生的Linux容器格式(Docker中称为libcontainer);Linux内核的命令空间(namespace),用于隔离文件系统、进程和网络;文件系统隔离(每个容器都有自己的root文件系统);进程隔离(每个容器都运行在自己的进程环境中);网络隔离(容器间的虚拟网络接口和IP地址都是分开的);资源隔离和分组(使用cgroups将CPU和内存之类的资源独立分配给每个Docker容器);写时复制(文件系统都是通过写时复制创建的,意味着文件系统是分层的、快速的,而且占用的磁盘空间更小);日志(容器产生的STDOUT、STDERR和STDIN这些IO流都会被收集并记入日志,用来进行日志分析和故障排错);交互式shell(用户可以创建一个伪tty终端,将其连接到STDIN,为容器提供一个交互式的shell)


作者:肥叔菌



读书 Docker

需要 登录 后方可回复, 如果你还没有账号请 注册新账号