docker学习1--什么是docker

什么是docker

介绍docker之前,我们先了解一下什么是容器。容器就是将软件打包成标准化单元,以用于开发、交付和部署。通俗地说,容器就像是书包里面可以装各种文具、衣柜里可以存放各种衣服。

docker

  • docker是世界上领先的软件容器平台
  • docker使用go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docke最初实现是基于LXC
  • docker能够自动执行重复性任务,例如搭建和配置开发环境
  • 用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样
    在这里插入图片描述

docker思想

  • 集装箱
  • 标准化:运输方式、存储方式、API接口
  • 隔离

docker容器的特点

  • 轻量,在一台机器上运行的多个docker容器可以共享这台机器的操作系统内核;他们能够迅速启动,只需占用很少的计算和内存资源、镜像是通过文件系统层进行构造的,并共享一些公共文件,这样就能尽量降低磁盘用量
  • 标准,docker容器基于开放式标准,能够在所有主流Linux版本、Windows以及VM、裸机服务器和云在内的任何基础设施上运行
  • 安全,docker富裕应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。

为什么要用docker

  • docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现“这段代码在我机器上没问题啊”这类的问题
  • 可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间
  • 避免公共的服务器,资源会容易受到其他用户的影响
  • 善于处理集中爆发的服务器使用压力
  • 可以很轻易的将一个平台上的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况
  • 使用docker可以通过定制应用镜像来实现持续集成、持续交付、部署

容器VS虚拟机

简单来说:容器和虚拟机具有相似的资源隔离和分配优势,但功能有所不同,因为容器虚拟化的是操作系统,而不是硬件,因此容器更容易移植,效率也更高。
传统虚拟机技术是虚拟出一套硬件后,在其运行一个完整操作系统,在该系统上再运行所需应用进程,而容器内的应用进程直接运行在宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统的虚拟机更为轻便
容器和虚拟机
在这里插入图片描述
虚拟机和容器适用于不同的场景,虚拟机擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不容的用户。而docker通常用于隔离不同的应用,例如前段、后端以及数据库。

docker基本概念

  • 镜像
  • 容器
  • 仓库

镜像(image)–一个特殊的文件系统

操作系统分为内核和用户控件,对应Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而docker镜像,就相当于一个root文件系统。
docker是一个特殊的文件系统,处理提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数

容器(container)–镜像运行时的实体

镜像和容器的关系,就像面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行属于自己的独立的命名空间。

仓库–集中存放镜像文件的地方

一个Docker Registry中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。所以说:镜像仓库是Docker用来集中存放镜像文件的地方类似于我们之前常用的代码仓库。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本 。我们可以通过<仓库名>:<标签>的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以latest作为默认标签。

发布了28 篇原创文章 · 获赞 0 · 访问量 375

猜你喜欢

转载自blog.csdn.net/qq_42098424/article/details/105123102
今日推荐