本篇文章是作为新手入门的引入文章,介绍了学习docker应该掌握的内容、docker的基本概念和基本原理。

先了解这些内容,再对docker进行系统的学习,才能有比较好的效果。下面,就和小九一起开始docker的学习吧!

关于

[Docker]是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。

借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

Docker 需要重点掌握的内容包括:

  • 核心原理
  • 基础三大件:镜像、容器、仓库
  • 镜像生产:通过 Dockerfile 编排镜像所需的资源
  • 持久化存储:将容器的数据保存在宿主机磁盘中
  • 端口与互联:容器与宿主机、容器与容器、容器与外部的连接与通信机制
  • 用户权限:容器中的用户与宿主机的用户之间的关系
  • 编排:通过多容器互联,实现所需的业务场景
Docker 官方文档 (opens new window)非常完善,而且非常有层次结构。

img

概念

Docker 是利用 Linux 的虚拟隔离技术(namespace)将操作系统分割为多个子操作系统,子操作系统之间互不干扰的一种虚拟化技术。

为什么会出现 Docker 技术? 其实主要有两个原因:

  • 软件架构复杂化,一个应用需要多个虚拟机协作支撑的情况已经非常普遍(也可以理解为微服务化)
  • 传统的操作系统笨重(占用 10G 左右的存储空间)、启动速度太慢(大约 20s)

也就是说,现在的系统架构,要求需要大量运行速度极快,资源占用甚少的轻量级虚拟机

img

Docker 的出现,正好解决了上述的困扰,轻量化的虚拟机改变了系统架构,云原生诞生于此。

原理

Docker 的核心原理可以归纳为两点:虚拟文件系统+虚拟用户

什么意思呢?

  • 虚拟文件系统本质上还是宿主机上的文件,但通过虚拟技术就变成了一种“独占”资源。
  • 虚拟用户本质上还是宿主机上的用户,但通过虚拟技术让容器认为自己有了单独的用户管理。

仅有虚拟还不够,在技术上必须有隔离方可确保容器之间互不干扰。

Docker 是对操作系统资源进行虚拟组合,形成一种新的有边界子操作系统。

再回过头来澄清两个概念:

  • 宿主机:运行 Docker 系统的那台虚拟机,被称之为宿主机
  • 容器:通过 Docker 创建的轻量级虚拟机,被成为容器(Container)

以应用的角度看,容器与宿主机不是从属关系,而是并列关系

Docker 容器是一台真实的虚拟机,这是理解容器的关键。

容器虚拟机拥有传统虚拟机的一切功能和操作方式,只有这样才能跳出“技术陷阱”,直接借鉴虚拟机的技术原理来掌握容器技术。

容器存在的根本目前也是用于运行软件,既然是运行软件,同样需要:

  • 安装基础环境
  • 与外部互联
  • 被外界访问
  • 存储数据
  • 存储代码
  • 高可用
  • 负载均衡

了解了这些内容之后,就让我们一起开启docker的学习之旅吧!

小九将持续更新docker后期学习教程~

本文由Websoft9原创发布,转载请注明出处。

Websoft9
37 声望8 粉丝

专注于开源软件的集成、自动化安装与商业级支持服务,致力帮助企业客户在云服务器上简化企业级软件的安装和部署,业已对国内外200+个高质量的应用软件、基础软件、数据库、DevOps、企业智能等领域的开源软件进行...