docker入门学习笔记

1 docker简介

  • 基于LXC 的容器引擎
  • golang编写
  • 核心组件:镜像,仓库,容器

1.1 container VS VMS

http://www.cnblogs.com/wang_yb/p/3923040.html

  • container基于kernel的cgroup和namespace
  • container相比传统的虚拟机更为轻量(体积小,占用资源小),效率更高(创建、销毁速度快)、性能好(kernel原生态支持)
  • 传统虚拟机隔离比较彻底,安全性高

1.2 docker VS container

  • docker:基于LXC 的高级容器引擎
  • container操作的高级封装,提供接口,快速创建、启动、停止、销毁container等操作
  • 提供了container之间数据共享(数据卷)和网络配置(桥接)
  • 除此之外,docker还提供了镜像、仓库等功能

2 核心组件

2.1 镜像

http://www.infoq.com/cn/articles/docker-source-code-analysis-part9

  • 基础: 
    • docker容器运行的内容
    • 构建或打包阶段
    • 一般由开发人员创建、维护、修改
    • 标准化操作规范(dockerfile)
    • 可以把多个程序打成一个镜像
  • 关联概念: 
    • rootfs + Union mount(aufs等) + image + layer
  • 相关操作: 
    • pull、search、images、tag、inspect、rmi、commit、load、push

2.2 仓库

  • 功能 
    • 存放镜像的地方
  • 仓库: 
    • 默认仓库:hub.docker.com
    • 国内仓库:dl.dockerpool.com
    • 可以建立私有仓库
  • 相关操作: 
    • pull、push、search

2.3 容器

  • 功能 
    • 镜像的执行者
    • 提供了container之间数据共享(数据卷) + 网络(桥接功能 + 独立的ip/port)
  • 组成: 
    • 一个镜像格式:image
    • 一系列标准的操作:镜像打包规范 + 执行
    • 一个执行环境:container
  • 相关操作 
    • 创建、启动、stop、rm容器

总结

  • 优点: 
    • container操作的高级封装,比传统虚拟机有效率
    • 一次打包,可以多次部署
    • 保证开发、测试、线上环境一致
    • 生态圈比较活跃,多个云平台支持
  • 缺点: 
    • 安全性:container VS VM
    • 对于运行时的数据、日志机制不够好

你可能感兴趣的:(docker)