目录
1. Docker 简介
1.1.什么是虚拟化
在计算机中,虚拟化(英语:
Virtualization
)是一种资源管理技术,是将计算机的各种实体
资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不
可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部
份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能
力和资料存储。
在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的
硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件对资源充分
利用
虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化
(vip)
、
桌面虚拟化、服务虚拟化、虚拟机等等。
1.2.什么是Docker
Docker
是一个开源项目,诞生于
2013
年初,最初是
dotCloud
公司内部的一个业余项目。
它基于
Google
公司推出的
Go
语言实现。项目后来加入了
Linux
基金会,遵从了
Apache
2.0
协议,项目代码在
GitHub
上进行维护。
Docker
项目的目标是实现轻量级的操作系统虚拟化解决方案。
Docker
的基础是
Linux
容器(
LXC
)等技术。
Docker
的基础是
Linux容器(LXC
)等技术。
用户操作Docker的容器就像操作一个快速轻量级的虚拟机一样简单。
(
1
)上手快。
(2
)职责的逻辑分类
开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如
何管理容器。
(3)快速高效的开发生命周期
Docker的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应用程序具备可移植性,易于构建,并易于协作。(通俗一点说,Docker就像一个盒子,里面可以装很多物件,如果需要这些物件的可以直接将该大盒子拿走,而不需要从该盒子中一件件的取。)
(4)鼓励使用面向服务的架构
Docker还鼓励面向服务的体系结构和微服务架构。Docker推荐单个容器只运行一个应用程序或进程,这样就形成了一个分布式的应用程序模型,在这种模型下,应用程序或者服务都可以表示为一系列内部互联的容器,从而使分布式部署应用程序,扩展或调试应用程序都变得非常简单,同时也提高了程序的内省性。(当然,可以在一个容器中运行多个应用程序)
1.3容器与虚拟机比较
容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。
1.4.Docker组件
Docker服务器与客户端
Docker
是一个客户端
-
服务器(
C/S
)架构程序。
Docker
客户端只需要向
Docker
服务器或者
守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。
Docker
提供了一个
命令行工具
Docker
以及一整套
RESTfulAPI
。你可以在同一台宿主机上运行
Docker
守护进程
和客户端,也可以从本地的
Docker
客户端连接到运行在另一台宿主机上的远程
Docker
守护
进程。
![](https://i-blog.csdnimg.cn/blog_migrate/c912b951d5cdb4ed7478aedee5d6312d.png)
Docker镜像与容器
镜像是构建Docker的基石。用户基于镜像来运行自己的容器。镜像也是Docker生命周期中的“构建”部分。镜像是基于联合文件系统的一种层式结构,由一系列指令一步一步构建出来。
Docker
可以帮助你构建和部署容器,你只需要把自己的应用程序或者服务打包放进容
器即可。容器是基于镜像启动起来的,容器中可以运行一个或多个进程。我们可以认为,镜
像是
Docker
生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。容器基于
镜像启动,一旦容器启动完成后,我们就可以登录到容器中安装自己需要的软件或者服务。
所以
Docker<