1、Docker提供了一个容器
执行命令sudo docker run -i -t ubuntu /bin/bash,便可以进入docker容器内部,执行ls即可查看文件目录,其相当于一个虚拟机。
2、什么是容器
一种虚拟化的方案
操作系统级别的虚拟化
只能运行相同或相似内核的操作系统
容器依赖于Linux内核特性:Namespace和Cgroups
3、使用容器部署应用VS使用虚拟机部署应用
1)容器磁盘占用少,虚拟机部署应用不仅要包含a)应用本身和b)应用需要依赖的库,还需要c)安装操作系统;
使用容器部署,只需要包含a)应用本身和b)应用需要依赖的库
2)容器所需要消耗的内存资源也更少。
4、什么是Docker
将应用程序自动部署到容器,使用Go语言开发
Docker的目标:a)提供简单轻量的建模方式 b)职责的逻辑分离,实现应用开发部署测试环境与生产环境的一致性
c)快速高效的开发生命周期,测试、开发使用同样的环境d)鼓励使用面向服务的架构
Docker的使用场景:a)使用Docker容器开发、测试、部署服务。b)创建隔离的运行环境c)搭建测试环境
d)构建多用户的平台即服务(PaaS)基础设施e)提供软件即服务(SaaS)应用程序f)高性能、超大规模的
宿主机部署。
5、Docker的 基本组成
a)Docker Client客户端
b)Docker Daemon守护进程
Docker是 C/S架构的程序 ,Docker的客户端向服务器端(即守护进程)发送请求,守护进程处理完并将结果返回给客户端。
Docekr客户端访问服务器端即可以是在本地,也可以通过远程来访问。
Docker客户端执行各种命令;Docker客户端将这些命令发送给守护进程;守护进程执行的结果返回给客户端
c)Docker Image镜像
Docker镜像是容器的基石,容器基于镜像启动和运行;
Docker镜像是一个只读的文件系统;boofs引导文件系统;Docker利用联合加载技术在rootfs上加载更多的只读文件系统(add emacs);
联合加载指一次加载多个文件系统,但在外部看来只能看到一个文件系统,
它将各层文件系统叠加到一起,让最终的文件系统包含所有底层的文件和目录
Docker将这样的文件系统称为镜像。
一个镜像可以放到另一个镜像的底部,位于下面的称为父镜像,最底部的镜像称为基础镜像(rootfs)
d)Docker Container容器
通过镜像启动,是docker的执行来源,容器中可以执行客户的一个或多个进程;
镜像是Docker生命周期的构建和打包阶段;容器就是Docker生命周期的启动和执行阶段;
容器通过镜像启动:会在镜像上添加一个可写层(读写层),我们在Docker中运行的程序就是在这一层执行的。
当docker第一次启动是,初始的可写层是空的。
写时复制:如果想修改一个文件,首先会将文件从下层的只读层复制到读写层,该文件的只读版本依然存在,但是已经被该文件
读写层中的副本所隐藏。
每个只读镜像层都是只读的,并且永远不会变化。
当创建一个新容器时,会构建一个镜像栈,如图所示,在最顶层构建一个可写层,这个a)可写层加下b)下面的镜像层以及一些c)配置数据
就构成了一个容器。
e)Docker Registry仓库
Docker用仓库来保存用户构建的镜像。
仓库分为公有和私有仓库两种。docker提供的仓库是docker hub
Docker依赖的Linux内核特性
1、Namespaces 命名空间
2、Control groups (cgroups)控制组
执行命令sudo docker run -i -t ubuntu /bin/bash,便可以进入docker容器内部,执行ls即可查看文件目录,其相当于一个虚拟机。
2、什么是容器
一种虚拟化的方案
操作系统级别的虚拟化
只能运行相同或相似内核的操作系统
容器依赖于Linux内核特性:Namespace和Cgroups
3、使用容器部署应用VS使用虚拟机部署应用
1)容器磁盘占用少,虚拟机部署应用不仅要包含a)应用本身和b)应用需要依赖的库,还需要c)安装操作系统;
使用容器部署,只需要包含a)应用本身和b)应用需要依赖的库
2)容器所需要消耗的内存资源也更少。
4、什么是Docker
将应用程序自动部署到容器,使用Go语言开发
Docker的目标:a)提供简单轻量的建模方式 b)职责的逻辑分离,实现应用开发部署测试环境与生产环境的一致性
c)快速高效的开发生命周期,测试、开发使用同样的环境d)鼓励使用面向服务的架构
Docker的使用场景:a)使用Docker容器开发、测试、部署服务。b)创建隔离的运行环境c)搭建测试环境
d)构建多用户的平台即服务(PaaS)基础设施e)提供软件即服务(SaaS)应用程序f)高性能、超大规模的
宿主机部署。
5、Docker的 基本组成
a)Docker Client客户端
b)Docker Daemon守护进程
Docker是 C/S架构的程序 ,Docker的客户端向服务器端(即守护进程)发送请求,守护进程处理完并将结果返回给客户端。
Docekr客户端访问服务器端即可以是在本地,也可以通过远程来访问。
Docker客户端执行各种命令;Docker客户端将这些命令发送给守护进程;守护进程执行的结果返回给客户端
c)Docker Image镜像
Docker镜像是容器的基石,容器基于镜像启动和运行;
Docker镜像是一个只读的文件系统;boofs引导文件系统;Docker利用联合加载技术在rootfs上加载更多的只读文件系统(add emacs);
联合加载指一次加载多个文件系统,但在外部看来只能看到一个文件系统,
它将各层文件系统叠加到一起,让最终的文件系统包含所有底层的文件和目录
Docker将这样的文件系统称为镜像。
一个镜像可以放到另一个镜像的底部,位于下面的称为父镜像,最底部的镜像称为基础镜像(rootfs)
d)Docker Container容器
通过镜像启动,是docker的执行来源,容器中可以执行客户的一个或多个进程;
镜像是Docker生命周期的构建和打包阶段;容器就是Docker生命周期的启动和执行阶段;
容器通过镜像启动:会在镜像上添加一个可写层(读写层),我们在Docker中运行的程序就是在这一层执行的。
当docker第一次启动是,初始的可写层是空的。
写时复制:如果想修改一个文件,首先会将文件从下层的只读层复制到读写层,该文件的只读版本依然存在,但是已经被该文件
读写层中的副本所隐藏。
每个只读镜像层都是只读的,并且永远不会变化。
当创建一个新容器时,会构建一个镜像栈,如图所示,在最顶层构建一个可写层,这个a)可写层加下b)下面的镜像层以及一些c)配置数据
就构成了一个容器。
e)Docker Registry仓库
Docker用仓库来保存用户构建的镜像。
仓库分为公有和私有仓库两种。docker提供的仓库是docker hub
Docker依赖的Linux内核特性
1、Namespaces 命名空间
2、Control groups (cgroups)控制组