zoukankan      html  css  js  c++  java
  • 【Docker】Docker是什么?怎么安装?怎么用?

      从今天开始学习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

      效果:

      

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

  • 相关阅读:
    WorldWind源码剖析系列:下载请求类DownloadRequest
    WorldWind源码剖析系列:网络下载类WebDownload
    WorldWind源码剖析系列:地形瓦片类TerrainTile和地形瓦片服务类TerrainTileService
    WorldWind源码剖析系列:下载队列类DownloadQueue
    C#游戏开发中快速的游戏循环
    C#游戏开发中精确的时间调配
    C#中XmlSerializer实现序列化浅析
    Vue 组件通信(组件间通信)
    Vue 组件通信(子组件向父组件传递数据)
    Vue props 单向数据流
  • 原文地址:https://www.cnblogs.com/linxiong945/p/4178584.html
Copyright © 2011-2022 走看看