目录
一、什么是Docker、有什么作用
二、Docker与虚拟机(对比)
三、Docker基础概念
四、CentOS安装Docker
一、从零认识Docker、有什么作用
1.项目部署可能的问题:
大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:依赖关系复杂,容易出现兼容性问题,开发、测试、生产环境有差异
2.Docker如何解决依赖的兼容问题的?
-
将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包;
-
将每个应用放到一个隔离容器去运行,避免互相干扰
3. Docker封装好的程序包如何跨系统运行?
用户程序、操作系统内核、硬件之间的关系:
-
内核与硬件交互,提供操作硬件的指令
-
系统应用封装内核指令为函数,便于程序员调用
-
用户程序基于系统函数库实现功能
前提:
不同Linux操作系统(如CentOS和Ubuntu),他们的的内核相同,但是开放给程序员使调用的的"系统调用"(俗称函数库)是有差异的,因此,项目的node、数据库等环境不能跨系统运行。
Docker是如何解决上述问题的呢?
-
Docker将用户程序与所需要调用的系统函数库一起打包。
-
Docker的程序包在运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行。
可以说,Docker打包好的程序包可以在任何使用Linux内核的操作系统上运行。
总的来说:
(1)Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题? 答:Docker允许在开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像; Docker应用运行在容器中,使用沙箱机制,相互隔离
(2)Docker如何解决开发、测试、生产环境有差异的问题? 答:Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行。
总结:
Docker是一个快速交付应用、运行应用的技术:
-
可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统;
-
运行时利用沙箱机制形成隔离容器,各个应用互不干扰;
-
启动、移除都可以通过一行命令完成,方便快捷;
二、Docker与虚拟机(对比)
虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在Windows系统里面运行Ubuntu系统,这样就可以运行任意的Ubuntu应用了。
Hypervisor是一种模拟计算机硬件的技术。
特性 | Docker | 虚拟机 |
---|---|---|
性能 | 接近原生 | 性能较差 |
硬盘占用 | 一般为MB | 一般为GB |
启动 | 秒级 | 分钟级 |
Docker和虚拟机的差异:
-
docker是一个系统进程;虚拟机是在操作系统中的操作系统;
-
docker体积小、启动速度快、性能好;而虚拟机体积大、启动速度慢、性能一般;
三、Docker基础概念
1. 镜像和容器
镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。
注意:
-
镜像是只读的,基于镜像创建的容器(进程),只能对镜像作读操作;
-
对于一些需要写操作的文件,如日志和数据等,容器需要进行一个备份,如上图;
2. Docker和DockerHub
DockerHub: DockerHub是一个Docker镜像的托管平台。这样的平台统称为Docker Registry.。
国内也有类似于DockerHub的公开服务,比如网易云镜像服务、阿里云镜像库等。
3. Docker架构
-
如何利用Docker完成镜像构建?
-
如何从远端拉取一个镜像呢?
-
如何去运行一个容器呢?
Docker是一个CS架构的程序,由两部分组成: ◆服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等 ◆客户端(client):通过命令或RestAPIT向Docker)服务端发送指令。可以在本地或远程向服务端发送指令。
图中Registry相当于官方远程仓库,存储这各种官方镜像。
总结:
镜像:将应用程序及其依赖、环境、配置打包在一起。 容器:镜像运行起来就是容器,一个镜像可以运行多个容器。
Docker结构: 服务端:接收命令或远程请求,操作镜像或容器; 客户端:发送命令或者请求到Docker服务端;
DockerHub:一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry;
四、CentOS安装Docker
请参考我的这篇博客:
Docker 安装详细教程(适用于CentOS 7 系统)-CSDN博客文章浏览阅读350次,点赞6次,收藏7次。Docker 分为 CE 和 EE 两大版本。CE即社区版(免费,支持周期7个月);EE即企业版,强调安全,付费使用,支持周期24个月。Docker CE 分为和nightly三个更新频道。官方网站上有各种环境下的安装指南,这里主要介绍Docker CE在CentOS上的安装。Docker CE 支持64位版本 CentOS7,并且要求内核版本不低于3.10,CentOS7满足最低内核的要求,所以我们在CentOS7安装Docker。https://blog.csdn.net/Future_yzx/article/details/145429037
总结
本文介绍了 Docker 的基础概念和常见应用,重点讲解了它如何解决跨系统部署问题,并与虚拟机进行了对比。我们还详细说明了 Docker 镜像、容器、Docker Hub 等核心概念,并提供了在 CentOS 上安装 Docker 的具体步骤。
通过这篇教程,你应该能够理解 Docker 的基本功能并顺利安装使用它。掌握 Docker 将帮助你提高开发效率和部署灵活性。如果有更多问题,欢迎继续关注后续内容。