What is docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,
然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

==============================================================
What is docker

1.什么是docker
    Docker是一个基于Go语言的云开源项目。Docker提供高效、敏捷和轻量级的容器方案。Docker主要目标是“Build,Ship and Run Any App,Anywhere”。
    Docker引擎的基础是Linux容器(LXC)技术。在LXC的基础上,Docker进一步优化了容器的使用体验,同时提供了各种容器管理工具(如分发、版本、移植等),让用户无需关注底层的操作。

2.docker的优势
    (1)更快速的交付和部署。
    (2)更高效的资源利用。docker容器的运行不需要额外的虚拟化管理程序(VMM),它是内核级的虚拟化,可以实现更高的性能,同时对资源的 额外需求很低。
    (3)更轻松的迁移和扩展。docker容器几乎可以在任何平台上运行。
    (4)更简单的更新管理。使用dockerfile,只需要小小的配置修改,就可以替代以往大量的更新工作,并且所有的修改都是增强进行的。

3.docker与虚拟机的比较
    (1)docker容器很快,启动和停止可以在秒级别完成。
    (2)docker容器对系统的资源需求很少,一台主机上可以同时运行数千个docker容器。
    (3)docker通过类似git的操作来方便用户获取、分发、更新应用镜像,指令简单易学,学习成本低。
    (4)docker通过dockerfile配置文件来支持灵活的自动化创建和部署机制,提供了工作效率。

==============================================================
docker三大核心概念:镜像、容器、仓库

1.docker镜像(image)
    镜像是创建docker容器的基础,docker镜像类似于虚拟机镜像,可以将它理解为一个面向docker引擎的只读模块,包含文件系统。
    创建镜像有三种方法:
    (1)基于已有镜像的容器创建。主要是利用docker commit命令。
    (2)基于本地模板导入。推荐利用OpenVZ提供的模板来创建。
    (3)基于dockerfile创建。首先按照dockerfile的格式,编写好dockerfile文件,之后通过docker build命令来创建镜像。 docker build会读取制定的dockerfile,由docker服务器来创建镜像。

2.docker容器(container)
    容器是从镜像创建的应用运行实例,容器之间是相互隔离、互不可见的。可以把容器看做一个简易版的linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在这个环境上的应用打包而成的应用盒子。
    镜像自身是自读的,容器从镜像启动的时候,docker会在镜像的最上层创建一个可写文件层,镜像本身保持不变。
    可以利用docker create命令创建一个容器,创建后的的容器处于停止状态,可以使用docker start命令来启动它。也可以直接李东docker run命令来直接从镜像启动运行一个容器。docker run = docker creat + docker start。
     当利用docker run创建并启动一个容器时,docker在后台的标准操作包括:
    (1)检查本地是否存在指定的镜像,不存在就从公有仓库下载。
    (2)利用镜像创建并启动一个容器。
    (3)分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。
    (4)从宿主机配置的网桥接口中桥接一个虚拟的接口到容器中。
    (5)从地址池中配置一个IP地址给容器。
    (6)执行用户指定的应用程序。
    (7)执行完毕后容器终止。

3.docker仓库(Repository)
    仓库是存放docker镜像的地方。仓库和注册服务器(Registry)还是有区别的。注册服务器是存放仓库的地方,在其中存放了很多仓库,每个仓库存放一类镜像文件。
    仓库分为公有仓库和私有仓库,DockerHub是目前最大的公有仓库。可以通过docker push/pull命令从仓库中上传和下载镜像,docker search命令来搜索镜像。

==============================================================
Docker Hub最受欢迎的10个镜像

排名最高的10个官方库

Rank Repository Stars
1 Ubuntu 2,007
2 Centos 1,164
3 Nginx 1,163
4 Redis 957
5 Node 891
6 Postgres 889
7 Mysql 885
8 Mongo 796
9 Debian 573
10 Jenkins 508

==============================================================
什么是容器云

       容器为用户打开了一个通往新世界的大门,但是真正进入到容器世界之后,却会发现新的生态系统如此庞大,在生产环境中,不论是个人还是企业都会提出更复杂的需要,我们需要跨主机的容器协同工作,需要支持各种类型的工作负载,需要多人协作持续集成,需要持续的交付平台。这样,容器相关的网络、存储、高可用性就不得不面对。这就必然的从容器走向了 容器云。

        容器云以容器为资源分割和调度的基本单位,封装整个软件的运行时环境,为开发者和系统管理者提供用于构建、发布和运行分布式应用的平台。 
        容器云最直观的形态就是一个颇具规模的容器集群,它按照功能或依赖敏感性划分成组,不同容器组之间完全隔离,组内容器运行一定程度的共享。容器之间不再简单的依靠docker --link这类的原生命令进行组织,而是借助全局网络管理组件来进行统一管理。容器云的用户也不需要再直接面对docker api,而是借助某种控制器来完成用户操作到docker容器之间的调用转译,从而提供更加友好的UI。

        当容器云专注于资源共享与隔离,容器编排与部署时,她更接近传统的Iaas,当容器云渗透到应用支持与运行时环境时,它更接近与传统的Paas。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值