从今天开始学习Docker,通过对网上资料的搜集与学习,记录一下。


是什么 ?

  Docker是一个基于LXC实现的类似于VMs的超轻量级虚拟机。

  它与VMs的区别在于,VMs提供的是一个完整的操作系统虚拟环境,从硬件层次上,包含了大量类似硬件驱动、虚拟处理器、网络接口等等并不需要的信息,并且虚拟机也需要比较长时间的启动,同时也会消耗大量的内存、CPU 资源。

  而Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了一个轻量级的虚拟环境。Docker 利用了 LXC, cgroups 和 Linux 自己的内核。和传统的虚拟机不同的是,一个 Docker 容器并不包含一个单独的操作系统,而是基于已有的基础设施中操作系统提供的功能来运行的。

  

  Docker 会像一个可移植的容器引擎那样工作。它把应用程序及所有程序的依赖环境打包到一个虚拟容器中,这个虚拟容器可以运行在任何一种 Linux 服务器上。

  并且Docker并不会像普通虚拟机一样包含操作系统内核,也不需要虚拟一切硬件平台,它直接通过Docker Engine在宿主机平台上进行调度,从而大大减少了调用的复杂度,减少了运行的时间。

  Docker 由下面这些组成:
    1. Docker 服务器守护程序(server daemon),用于管理所有的容器。
    2. Docker 命令行客户端,用于控制服务器守护程序。
    3. Docker 镜像:查找和浏览 docker 容器镜像。

  Docker的优点:

    1. 启动速度块,通常1秒就能启动。

    2. 资源利用率高,单位宿主机可同时运行的容器多。

    3. 性能开销很小。

  Docker的缺陷:

     1. Docker是基于Linux 64bit的,无法在windows/unix或32bit的linux环境下使用

     2. LXC是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的

     3. 隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库

     4. 网络管理相对简单,主要是基于namespace隔离

     5. cgroup的cpu和cpuset提供的cpu功能相比KVM的等虚拟化方案相比难以度量(所以dotcloud主要是按内存收费)

     6. docker对disk的管理比较有限

     7. container随着用户进程的停止而销毁,container中的log等用户数据不便收集


怎么装 ?

  关于安装一个新的东东,最靠谱还是官方的文档了。

  官方以ubuntu为例,我的系统为Debian,安装方法大致相同。

  1、更新源:

sudo apt-get update

  2、添加Docker的repository到你的本地秘钥库:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

  3、将Docker添加到你的apt软件安装源:

sudo sh -c "echo deb http://get.docker.io/ubuntu docker main /etc/apt/sources.list.d/docker.list"

  4、更新:

sudo apt-get update

  5、安装Docker:

sudo apt-get install lxc-docker

  安装完毕后,输出docker测试,如果安装成功了会出现:

  表示安装成功了。

  官方还提供了一个简单的脚本来帮助你安装Docker,只要运行这个指令:

curl -s https://get.docker.io/ubuntu/ | sudo sh

  一切就按部就班的进行了。


  以上是旧版本的安装方法,Docker正式版出来之后,Debain/Ubuntu用户可以直接使用命令:

sudo apt-get install docker.io

  来一键安装docker


怎么用 ?

  现在我们来试试运行一个Hello World!

  首先获取一个ubuntu镜像:

sudo docker pull ubuntu

  如果感觉慢,可以从docker中文官网介绍的一样,从国内的镜像点下载:

docker pull docker.cn/docker/ubuntu

  待下载完后:

  

  运行:

root@amd64:~# docker run docker.cn/docker/ubuntu /bin/echo xxxxx

  效果:

  

  这个是最简单的例子,更多应用,慢慢探索!

【Docker】Docker是什么?怎么安装?怎么用?的更多相关文章

  1. Docker:Ubuntu下的安装

    Docker是什么 Docker 是 Docker.Inc 公司开源的一个基于 LXC技术之上构建的Container容器引擎, 源代码托 管在 GitHub 上, 基于Go语言并遵从Apache2. ...

  2. Docker的学习--介绍和安装

    什么是 Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Lin ...

  3. Docker 在6.4上安装

      1 在 CentOS 6.4 上安装 docker docker当前官方只支持Ubuntu,所以在 CentOS 安装Docker比较麻烦(Issue #172). docker官方文档说要求Li ...

  4. Docker - 在Ubuntu16.04中安装Docker CE

    Get Docker for Ubuntu Check system version root@Ubuntu16:~# uname -a Linux Ubuntu16 4.8.0-36-generic ...

  5. Ubuntu Docker 版本的更新与安装

    突然发现自己的docker 版本特别的低,目前是1.9.1 属于古董级别的了,想更新一下最新版本,这样最新的一下命令就可以被支持.研究了半天都没有更新成功,更新后的版本始终都是1.9.1 :蒙圈了,找 ...

  6. Docker可视化管理工具Shipyard安装与配置

    Shipyard简介 Shipyard是一个集成管理docker容器.镜像.Registries的系统,它具有以下特点: 1.支持多节点的集成管理 2.可动态加载节点 3.可托管node下的容器 镜像 ...

  7. [docker]通过阿里云源安装docker && flannel不通问题解决(try this guy out)

    docker清理容器 # 容器停止后就自动删除: docker run --rm centos /bin/echo "One"; # 杀死所有正在运行的容器: docker kil ...

  8. Docker入门1------概念和安装

    关于docker的介绍: https://www.cnblogs.com/neptunemoon/p/6512121.html docker入门教程:http://www.docker.org.cn/ ...

  9. 配置docker官方源并用yum安装docker

    一.docker的官方安装文档: https://docs.docker.com/engine/installation/linux/centos/ 由docker给的文档可以看出它也只是去配置了一个 ...

  10. Ubuntu Docker版本的更新与安装

    突然发现自己的docker版本特别的低,目前是1.9.1属于古董级别的了,想更新一下最新版本,这样最新的一下命令就可以被支持.研究了半天都没有更新成功,更新后的版本始终都是1.9.1 :查阅了官网资料 ...

随机推荐

  1. 安装Python-Windows

    安装Python-Windows 在开始Python编程前,需要先安装Python环境.Python安装包可以到Python的官网下载,官网地址是https://www.python.org/,如果想 ...

  2. Backup--完整备份会打破现有的日志备份链么?

    --问题描述: --对数据库有一个周期性数据库备份和事务日志备份的维护计划,在维护计划外有工作人员对数据库进行完整备份,该备份会打乱现有的日志备份链么? --===================== ...

  3. 通过api获取句柄控制其他窗体

    很多时候,编写程序模拟鼠标和键盘操作可以方便的实现你需要的功能,而不需要对方程序为你开放接口.比如,操作飞信定时发送短信等.我之前开发过飞信耗子,用的是对飞信协议进行抓包,然后分析协议,进而模拟协议的 ...

  4. NGrinder操作指南

    一.使用nGrinder谷歌插件录制性能测试脚本: 1.下载录制插件压缩包ngrinder-recorder-1.0.7z,解压到本地目录. 2.打开Chrome浏览器,URL框内输入chrome:/ ...

  5. const 与define 创建符号常量的 用法与区别

    一.define 的用法: 在c语言中我经常会看到 :#define  PI  12 ,这是创建了一个符号常量,这里面要注意没有那个等于号“=”: 二.const 的用法: 1.const 也可以来创 ...

  6. TCP和UDP的最完整的区别【转】

    来源:https://blog.csdn.net/li_ning_/article/details/52117463 TCP UDPTCP与UDP基本区别  1.基于连接与无连接  2.TCP要求系统 ...

  7. 洛谷P3616 富金森林公园

    题目描述 博艾的富金森林公园里有一个长长的富金山脉,山脉是由一块块巨石并列构成的,编号从1到N.每一个巨石有一个海拔高度.而这个山脉又在一个盆地中,盆地里可能会积水,积水也有一个海拔高度,所有严格低于 ...

  8. 2016级算法第四次上机-F.AlvinZH的最“长”公共子序列

    940 AlvinZH的最"长"公共子序列 思路 DP,难题. \(dp[i][j]\) :记录A的前i个字符与B的前j个字符变成相同需要的最小操作数. 初始化:dp[i][0] ...

  9. six

    团队序号:6组 团队名称:拯救地球小分队 团队项目的码云地址:https://gitee.com/lwj5950/seflash 此次博客撰写人姓名:刘威骏 学号:2017*****7168 团队中的 ...

  10. [SCOI2018]游泳池(计算几何+分数规划+最大权闭合子图)

    题目链接 https://www.luogu.org/problemnew/show/U56187 注:题面参考了网上的其他博客,并非原题题面,因此数据范围可能有误.数据为原创数据. 题解 其实就是许 ...