• Docker


    Docker

    2016.11.22

    Docker特点

    特性:

    1. 资源独立,隔离

    与宿主机其他应用互不影响

    1. 环境一致性

    无论build的Docker image创建的container在哪里都能够保证环境变量、运行环境相同

    1. 轻量化

    与虚拟化相比快速开/关机
    CPU/内存的低消耗
    速度快

    1. Build Once,Run Everywhere

    只需要迁移符合标准规范

    总结就是容器技术的高生产力符合当前高产能的需求


    Docker是什么

    Docker是一种容器技术,把应用和环境打包,形成一个独立的,类似与APP形式的应用。与虚拟化技术类似,极大的方便了应用服务的部署,却又与虚拟化技术不同,它以一种更轻量的方式实现了应用服务的打包。使用Docker可以让每个应用彼此相互隔离,在同一台机器上同时运行多个应用。可以在更细的粒度上进行资源的管理,比虚拟化技术更节约资源。
    enter description here
    上图是Docker与虚拟机的实现框架,可以很明显看出虚拟机的Guset OS层(虚拟机安装的操作系统)和Hypervisor层(硬件虚拟化平台,比如KVM)在Docker中被Docker Engine所替代。
    虚拟机实现资源隔离的方法是独立OS+虚拟化CPU、内存、IO设备。
    Docker实现资源隔离的方法是利用Linux内核本身支持的容器方式实现资源和环境隔离。
    Docker有着更少的抽象层,不需要Hypervisor实现硬件虚拟化,运行在Docker容器上的程序直接使用的都是世纪物理机的硬件资源。因此在CPU、内存利用率上Docker效率更高。
    此外,Docker利用宿主机内核无需Guest OS,当新建一个容器时无需加载操作系统内核,资源开销相比虚拟机极小,启动/关闭时间也远高于虚拟机。


    Docker的基本概念

    • 镜像——Image

    • 容器——Container

    • 仓库——Repository

    镜像:
    镜像是一个只读的模版,一个镜像可以包含一个完整的Ubuntu操作系统环境,里面仅安装了Apache或用户需要的其它应用程序,镜像可以用来创建Docker容器
    容器:
    Docker利用容器来运行应用。
    容器是从镜像创建的运行实例,可以被启动、开始、停止、删除,每个容器都是相互隔离的,可以把容器看作一个简易版的Linux环境

    镜像是只读的,容器在启动的时候创建一层可写层作为最上层

    仓库:
    仓库是集中存放镜像文件的场所,仓库注册服务器(Registry)中往往存放多个仓库,每个仓库又包含了多个镜像,每个镜像有不同的标签(tag)
    仓库分为公开库与私有库。
    最大的公开仓库是Docker Hub,国内有Docker Pool等。
    用户也可以在本地网络创建一个私有仓库。
    用户创建了自己的镜像后可以使用push上传到仓库,在使用另外一台机器的时候可以从仓库pull下来。


    Docker的使用

    Ubuntu使用提示:
    一定要用sudo

    安装Docker

    yum install docker
    

    启动守护进程

    service docker start
    

    在系统启动时运行

    chkconfig docker on
    

    获取远程镜像

    docker pull ubuntu
    

    创建一个容器

    docker create
    

    运行一个新容器

    docker run
    

    启动一个新容器,并把Ubuntu的shell作为入口

    docker run -it ubuntu:latest sh -c '/bin/bash'
    

    -i代表这是一个交互容器,把当前标准输入重定向到容器的标准输入,而不是终止程序运行
    -t代表为这个容器分配一个中断
    Ctrl+D可以退出这个容器

    docker ps -a
    

    docker ps命令可以看到当前正在运行的容器
    -a参数可以看到所有创建的容器

    退出容器后要重新启动这个容器

    docker start
    

    注意:
    每次执行docker run命令都会创建新的容器,最好一次创建后使用docker start/stop来启动/停用容器


    参考/引用来源:
    DaoCloud
    cbl709
    极客学院

  • 相关阅读:
    Postgres窗口函数学习
    关于KMP算法
    Kettle应用实例
    mybatis中po类继承另一个po类时查不出另一个po类里的属性
    查看Mybatis动态SQL
    取每个班前5名成绩的sql
    scatter/gather与map/reduce技术的布道推广从换个说法开始
    神奇的O記
    【坑】软件的大版本的各类小版本支持问题
    oracle时间处理tochar的黑幕坑
  • 原文地址:https://www.cnblogs.com/Juntaran/p/6090257.html
Copyright © 2020-2023  润新知