0

0

Docker与容器

蓮花仙者

蓮花仙者

发布时间:2025-07-19 11:02:20

|

424人浏览过

|

来源于php中文网

原创

docker 简介

  1. Docker 主要解决什么问题

Docker 的核心目标是实现快速的构建(Build)、分发(Ship)和运行(Run)。它通过将应用程序及其运行环境打包在一起,解决了部署环境依赖的问题,实现了跨平台的分发和使用。这与DevOps理念高度契合,通过使用Docker,可以显著提高开发、测试和运维的效率。在移动互联网时代,任何能够节省人力和提升效率的工具都极具吸引力。

  1. Docker 的历史

早在DotCloud公司时期,Docker就已经开始酝酿。DotCloud是一家法国公司,最初提供PaaS服务,支持多种语言的运行环境,如Java、Python、Ruby、Node.js等。然而,在PaaS领域面临众多巨头的竞争,DotCloud决定将他们的项目Docker开源。2013年3月,Docker以开源软件的形式发布,迅速在容器领域掀起了一股热潮。截至2015年11月,Docker在GitHub上获得了25600个赞,超过6800次克隆,并有超过1100名贡献者,成为GitHub上最具影响力的开源项目之一。Docker的开源不仅吸引了Docker公司、Red Hat、IBM、Google、Cisco、亚马逊等国际巨头,还包括国内的华为等公司都为其贡献代码。在美国,几乎所有云计算厂商都积极参与Docker生态圈。

  1. Docker 是什么

Docker是容器化技术的一种实现。虽然容器化技术并非新兴,但Docker的火爆得益于云计算的快速发展。云计算是移动互联网、IT及未来消费者行业的基础。在云计算的三层架构中,IaaS层以虚拟机为基础,而虚拟机依赖于Hyper-V架构,每个虚拟机运行一个完整的操作系统,占用至少5GB的磁盘空间。然而,操作系统对用户来说是无用的,用户更关心的是虚拟主机提供的服务。因此,轻量级的主机需求迫在眉睫,Docker容器应运而生。容器由于省去了操作系统,结构更加简化,可以在单台服务器上运行更多的应用,这正是IaaS所需的。

Docker与容器

容器和镜像是Docker的核心部分,使用Docker时,实际上是在容器中运行一个镜像。

叮当好记-AI音视频转图文
叮当好记-AI音视频转图文

AI音视频转录与总结,内容学习效率 x10!

下载
  1. 什么是容器

许多用户初次接触Docker时,会将容器视为一种轻量级的虚拟机,但实际上二者有很大区别。容器本质上是操作系统上运行的一个进程,只是加入了资源隔离和限制。在操作系统课程中,进程是一个运行中的程序。传统进程运行时,如果出现死循环或内存泄露,可能会耗尽CPU或内存,因为进程默认共享CPU和内存。这种不隔离的处理方式在企业级环境中是致命的,可能导致整个系统不可用。因此,早在2006年就出现了进程间的资源隔离技术,Linux也实现了类似的功能。最初,Linux的容器技术基于LXC,Docker在易用性和稳定性上进行了改进,其核心功能包括CGroups、Namespace和UnionFS。CGroups用于限制进程的资源使用;Namespace用于在操作系统上划分不同的命名空间,实现资源隔离;UnionFS用于处理分层镜像。

说明:LXC是Docker早期使用的技术,后来Docker开发了libcontainer,二者都是对Linux内核功能的封装。在安装了Docker的机器上,可以通过run命令启动容器,并通过ps命令查看已存在的容器。

  1. 什么是镜像

容器是一个动态的概念,而镜像是一个相对静态的概念。镜像可以理解为容器中的文件系统。早在1980年就出现了文件系统管理技术,如chroot系统调用,可以改变进程的工作目录并将其限定在该目录内,但其隔离功能有限且存在安全隐患。因此,Docker采用了Layered FS,将文件系统分成多个层,使多个容器可以共享公共部分。镜像是由Layered FS组成的,并且是只读的。在容器运行时,会在镜像之上添加一层可读写层。

说明:镜像不仅包含文件系统,还集成了容器运行的部分参数,可以将其视为容器的模板。

  1. 容器和镜像的关系

容器和镜像是紧密相关的,二者缺一不可,并且可以相互转换。Docker的镜像最初是从官方仓库拉取的,然后通过docker run命令启动容器。当需要将容器转化为镜像时,可以通过docker commit命令进行转换。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

530

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

554

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

718

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

6044

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

492

2023.09.01

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

219

2023.09.04

Js中concat和push的区别
Js中concat和push的区别

Js中concat和push的区别:1、concat用于将两个或多个数组合并成一个新数组,并返回这个新数组,而push用于向数组的末尾添加一个或多个元素,并返回修改后的数组的新长度;2、concat不会修改原始数组,是创建新的数组,而push会修改原数组,将新元素添加到原数组的末尾等等。本专题为大家提供concat和push相关的文章、下载、课程内容,供大家免费下载体验。

240

2023.09.14

js截取字符串的方法介绍
js截取字符串的方法介绍

JavaScript字符串截取方法,包括substring、slice、substr、charAt和split方法。这些方法可以根据具体需求,灵活地截取字符串的不同部分。在实际开发中,根据具体情况选择合适的方法进行字符串截取,能够提高代码的效率和可读性 。

300

2023.09.21

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

23

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.3万人学习

Git 教程
Git 教程

共21课时 | 4.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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