Docker基础

注:此学习笔记整理时间较早。

fa3854609dfad9c73b18942569cc28e1

 

Docker简介

Docker是DotCloud基于Go语言并遵循Apache 2.0协议开源的产品,于2013年3 月发布首个版本,是一个世界领先的软件“集装箱化”平台。它基于 Linux 内核  的 cgroup,  namespace等技术对进程进行隔离,号称“build once, configure     once and run anywhere“,让开发者可以打包他们的应用以及依赖包到一个可   移植的容器中,然后发布到任何流行的 Linux 机器上。2ee29141cff1e9b76b22d54c67af90d6

Docker架构

Docker 架构如下:

Docker基础插图2

完整的Docker有以下几个部分组成:

  • docker 客户端(Client)
  • Docker 守护进程(Daemon)
  • Docker 镜像(Image)
  • Docker容器(Container)

Docker应用场景

Docker的典型场景:

  • 使应用的打包与部署自动化
  • 创建轻量、私密的PAAS环境
  • 实现自动化测试和持续的集成/部署
  • 部署与扩展webapp、数据库和后台服务

容器与虚拟机比较

传统虚拟机技术

先介绍下Hypervisor:

Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个 操作系统和应用共享一套基础物理硬件。  Hypervisor是所有虚拟化技术的核    心。非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。当服务器 启动并执行Hypervisor时,它会给每一台虚拟机分配适量的内存、  CPU、网络 和磁盘,并加载所有虚拟机的客户操作系统。

Docker基础插图3

容器与虚拟机比较

  •   传统虚拟机技术通过Hypervisor层抽象底层基础设施资源,提供相互隔离的虚拟机,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;
  • 而容器内的应用进程运行于宿主的内核,容器内没有自己的内核,没有客户机操作系统,而且也没有进行硬件虚拟,因此容器要比传统虚拟机 更为轻便。
  •   虚拟机是为提供系统环境而生的,容器是为提供应用环境而生的。

Docker基础插图4

一个简单形象类比

为了加深理解,一个简单类比如下:

  • 物理机:

Docker基础插图5

  • 虚拟机:

Docker基础插图6

  • 容器:

Docker基础插图7

运行一个容器

通过 docker run 运行一个容器:

$  docker  run  -itd  busybox  sleep  300

52eab400f2fa3324cc3a6772e334474251fe6c87a2cc3877310a711aba86da6b

通过 docker ps 查看容器:

$  docker  ps   |  grep  busybox

52eab400f2fa                 busybox

"sleep  300"                               28  seconds  ago             Up  27  seconds

quizzical_fermi

通过 docker rm 删除容器:

$  docker  rm  -f  52eab400f2fa

52eab400f2fa

 

标签

发表评论