查看“Docker:基础”的源代码
←
Docker:基础
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:Docker]] == 环境配置的难题 == 软件开发最大的麻烦事之一,就是环境配置: : 用户必须保证两件事:操作系统的设置,各种库和组件的安装。只有它们都正确,软件才能运行。 通常在新旧模块整合,测试代码、运行代码的发布时,都需要花费大量的时间精力用于环境配置。经常遇到的问题就是相同的代码,更换到不同的环境中却不能运行。而如果新旧模块的环境不兼容,那就意味着更大的麻烦。 总而言之,为了避免在开发过程中过多地关注于系统环境配置,就需要一种能够将开发、测试、运行的环境进行发布共享的方式。 === 虚拟机 === 虚拟机(virtual machine)就是一种模拟软件(系统)环境的解决方案: : 它可以在一种操作系统里面运行另一种操作系统,而应用程序对此毫无感知。 而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响。 常用的虚拟机:VMWare、VirtualBox等; 但虚拟机的缺点让它不可能成为开发环境的解决方案: * 资源占用多: *: 虚拟机会独占一部分内存和硬盘空间;且用于虚拟机运行的资源往往远大于应用所实际使用的资源。 * 冗余步骤多: *: 虚拟机是完整的操作系统,相当内容是应用不需要;且一些系统级别的操作步骤,往往无法跳过,比如用户登录。 * 启动慢: *: 由于是真实的操作系统,启动过程等同于操作系统,这对于应用环境是相当累赘的。 === Linux 容器 === 由于虚拟机存在这些缺点,Linux 发展出了另一种虚拟化技术:'''Linux 容器'''(Linux Containers,缩写为 '''LXC'''): : Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,在正常进程的外面套了一个保护层。 对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。 Linux 容器相对于虚拟机的优势: * 资源占用少: *: 容器只占用需要的资源,且多个容器可以共享资源。 * 体积小: *: 只要包含用到的组件。 * 启动快: *: 容器中的应用是底层系统的一个进程,而不是虚拟机内部的进程,所以,启动容器相当于启动本机的一个进程。 总之,容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小得多。 == Docker == Docker 属于 '''Linux 容器的一种封装''',提供简单易用的容器使用接口: : Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。 总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。 * 容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。 Docker 是目前最流行的 Linux 容器解决方案。 用途: # 提供一次性的环境: #: 比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。 # 提供弹性的云服务: #: 因为 Docker 容器可以随开随关,很适合动态扩容和缩容。 # 组建微服务架构: #: 通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。 == 基础概念 == === image 文件 ===
返回至“
Docker:基础
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息