首页 > 运维 > linux运维 > 正文

Docker之简介

星夢妙者
发布: 2025-07-13 09:04:20
原创
685人浏览过

docker简介

1、是什么

1.1、问题:为什么会有Docker出现

产品从开发到上线,需要经过操作系统、运行环境、应用配置等多个环节。开发和运维团队需要协作处理这些复杂的问题,尤其是在版本迭代和环境兼容性方面对运维人员提出了挑战。Docker之所以迅速发展,正是因为它提供了一个标准化的解决方案来应对这些问题。

环境配置复杂,换一台机器就需要重新配置,耗时费力。人们开始思考,能否从根本上解决这个问题,让软件能够携带环境进行安装?也就是说,在安装时,将原始环境完整复制过来。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。

Docker之简介

过去在服务器上配置应用运行环境,需要安装各种软件,如Java、Tomcat、MySQL、JDBC驱动包等。这些配置不仅麻烦,还无法跨平台。如果在Windows上配置环境,到了Linux上又得重新配置。即使不跨操作系统,换另一台相同操作系统的服务器,移植应用也是非常困难的。

传统上认为,软件开发和测试完成后,产出的是程序或可编译执行的二进制字节码(以Java为例)。为了让这些程序顺利运行,开发团队需要准备完整的部署文件,供运维团队部署应用。开发团队需要明确告知运维团队所有的配置文件和软件环境。然而,即便如此,部署失败的情况仍然频繁发生。Docker镜像的设计打破了“程序即应用”的传统观念。通过镜像(images)将除操作系统核心外的所有应用运行环境打包,实现了应用在不同平台间的无缝运行。

1.2、Docker理念

Docker是基于Go语言实现的云开源项目。

Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,通过对应用组件的封装、分发、部署、运行等生命周期的管理,使得用户的APP(可以是一个WEB应用或数据库应用等)及其运行环境能够做到“一次封装,到处运行”。

Docker之简介

Linux容器技术的出现解决了这个问题,而Docker是在其基础上发展起来的。将应用运行在Docker容器上,Docker容器在任何操作系统上都是一致的,实现了跨平台、跨服务器。只需一次配置好环境,换到别的机器上即可一键部署,大大简化了操作。

1.3、一句话解决了运行环境和配置问题

软件容器,方便进行持续集成并有助于整体发布的容器虚拟化技术。

2、能干嘛

2.1、之前的虚拟机技术

虚拟机(virtual machine)是一种带环境安装的解决方案。

它可以在一种操作系统内运行另一种操作系统,例如在Windows系统内运行Linux系统。应用程序对此毫无感知,因为虚拟机看起来与真实系统完全一致,而对于底层系统来说,虚拟机只是一个普通文件,不需要时可以删除,对其他部分毫无影响。这类虚拟机完美地运行了另一套系统,使应用程序、操作系统和硬件三者之间的逻辑保持不变。

Docker之简介

虚拟机的缺点包括资源占用多、冗余步骤多、启动慢。

2.2、容器虚拟化技术

由于虚拟机存在这些缺点,Linux发展出了另一种虚拟化技术:Linux容器(Linux Containers,简称LXC)。

UP简历
UP简历

基于AI技术的免费在线简历制作工具

UP简历 128
查看详情 UP简历

Linux容器不模拟完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件运行所需的库资源和设置。系统因此变得高效轻量,并保证在任何环境中部署的软件都能始终如一地运行。

Docker之简介

比较了Docker和传统虚拟化方式的不同之处:

传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,然后在该系统上运行所需应用进程;而容器内的应用进程直接运行于宿主机的内核,容器内没有自己的内核,也没有进行硬件虚拟。因此,容器比传统虚拟机更为轻便。每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。

2.3、开发/运维(DevOps)

一次构建、随处运行

更快速的应用交付和部署

传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。

更便捷的升级和扩缩容

随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级。

更简单的系统运维

应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。

更高效的计算资源利用

Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。

3、去哪下

3.1、官网

Docker官网:https://www.php.cn/link/e836b5ebd3143577c69cda6109cc209e

Docker中文网站:https://www.php.cn/link/fadc9c1ef9cf923d5378fe28575ba385

3.2、仓库

Docker Hub官网: https://www.php.cn/link/0fe53ab665b7845ea7be17becdd77850

以上就是Docker之简介的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号