前言
Docker本身并不是容器,它是创建容器的工具,它是一个开源的应用容器引擎,使用Go语言开发并遵从Apache2.0协议开源,基于Linux内核的cgroup、namespace、Union FS等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称之为容器。
Docker 理念是将应用及依赖包打包到一个可移植的容器中,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 发新版Docker引擎上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间相互隔离不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
2、Docker的应用场景
–Web 应用的自动化打包和发布。
–自动化测试和持续集成、发布。
–在服务型环境中部署和调整数据库或其他的后台应用。
–从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
3、Docker的优点
【1】简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
【2】避免选择恐惧症:
如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
【3】节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
Docker的体系结构
Docker使用C/S架构。client向server端发送请求,server端负责构建、运行和分发容器。
client和server可以运行在同一个Host上,client也可以通过socket或RESTful API与远程的server通信。
1、Docker的核心组件
【1】Docker客户端: Client
常用的Docker客户端是docker命令。通过docker我们可以方便地在Host上构建和运行容器。
docker可以支持很多操作(子命令),仅需一条即可知道:
[root@k8s-master /]# docker
【2】Docker服务器:Docker Danemon 守护进程
Docker 客户端/守护进程,采用客户端/服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker Danemon是服务器组件,以linux后台服务的方式运行:
Docker Danemon运行在Docker Host上,负责创建、运行、监控容器、构建、存储镜像。
默认配置下,Docker Danemon只能响应来自本地Host的客户端请求。如果要允许远程客户端请求,需要在配置文件中打开TCP监听,步骤如下:
==============================》允许远程客户端请求配置《==============================
====》重启docker daemon:
====》服务器IP为192.168.72.134,客户端在命令行里加上-H参数,即可与远程服务器通信
info子命令用于查看Docker服务器的信息。
================================================================================================
【3】Docker镜像:Image
Docker镜像是Docker容器的基础,类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统,它的底层采用层叠的只读文件系统。
docker使用联合加载方式,一次把各层文件系统叠加到一起。
镜像是软件生命周期的构建和打包阶段
【4】Docker容器:Container
Docker 容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。
Docker容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离的、互不可见。
容器自身是只读的。容器从镜像启动的时候,Docker会在镜像的最上层创建一个可写层,镜像本身将保持不变。
容器时软件启动和运行阶段
容器与镜像的关系类似于面向对象编程中的对象与类。
Docker | 镜像 |
容器 | 对象 |
镜像 | 类 |
【5】Docker仓库:Registry
类似于代码仓库,用于存储镜像,是Docker集中存放镜像文件的场所。
Docker仓库分类:
公用仓库:官方公用Docker Hub,国内Docker Pool
私有仓库
通过doker的客户端来访问守护进程,通过镜像启动,镜像存于仓库中。当用户创建了自己的镜像之后就可以使用push命令将它上传到指定的公有/私有仓库。
docker pull 命令:从Register下载镜像
docker run命令:先下载镜像(如果本地没有),然后再启动容器。
================================================================================================
2、Docker的安装
至于Docker的安装,不再赘述,可参考CentOS7安装kubernetes和Docker【在线】CentOS7安装单机kubernetes和Docker_洒家肉山大魔王的博客-CSDN博客
3、小结
Docker本身并不是容器,它是创建容器的工具,它是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
Docker的三大核心:镜像、容器、仓库
通过这三大核心所构建的高效工作流程,毫无疑问,正式Docker从众多虚拟化方案中脱颖而出的重要原因。接下来,在后续内容中,我们将进一步地围绕这三大核心进行学习。
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树容器(docker)安装docker8770 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!