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时,实际上是在容器中运行一个镜像。

  1. 什么是容器

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

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

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

下载

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

  1. 什么是镜像

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

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

  1. 容器和镜像的关系

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

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

759

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

639

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

761

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

618

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1265

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

548

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

579

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

709

2023.08.11

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.16

热门下载

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

精品课程

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

共48课时 | 7.4万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

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

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