Docker介绍

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

官网:https://www.docker.com/
相关资料:
一、Docker入门教程 http://dockone.io/article/111
二、Docker_百度百科 http://baike.baidu.com/view/11854949.htm
三、史上最全Docker资料集粹 http://special.csdncms.csdn.net/BeDocker/
四、Docker - 话题精华 - 知乎 http://www.zhihu.com/topic/19950993/top-answers
五、docker 简明教程 | 简果网 http://www.simapple.com/docker-tutorial
六、如何使用Dockerfile构建镜像 http://blog.csdn.net/qinyushuang/article/details/43342553
七、Dockerfile reference - Docker https://docs.docker.com/engine/reference/builder/安全

Docker与虚拟机比较

做为一种轻量级的虚拟化方式,Docker在运行应用上跟传统的虚拟机方式相比具备显著优点:服务器

  • Docker容器很快,启动和中止能够在秒级实现,这相比传统的虚拟机方式要快得多。
  • Docker容器对系统资源需求不多,一台主机上能够同时运行数千个Docker容器。
  • Docker经过相似Git的操做来方便用户获取、分发和更新应用镜像,指令简明,学习成本较低。
  • Docker经过Dockerfile配置文件来支持灵活的自动化建立和部署机制,提升工做效率。

 

Docker架构

Docker 的核心组件包括:架构

  1. Docker 客户端 - Clientapp

  2. Docker 服务器 - Docker daemonsocket

  3. Docker 镜像 - Image工具

  4. Registry学习

  5. Docker 容器 - Containerui

Docker 架构以下图所示:spa

Docker 采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器能够运行在同一个 Host 上,客户端也能够经过 socket 或 REST API 与远程的服务器通讯。

Docker 客户端

最经常使用的 Docker 客户端是 docker 命令。经过 docker 咱们能够方便地在 Host 上构建和运行容器。

docker 支持不少操做(子命令),后面会逐步用到。

除了 docker 命令行工具,用户也能够经过 REST API 与服务器通讯。

Docker 服务器

Docker daemon 是服务器组件,以 Linux 后台服务的方式运行。

Docker daemon 运行在 Docker host 上,负责建立、运行、监控容器,构建、存储镜像。

Docker 镜像

可将 Docker 镜像看着只读模板,经过它能够建立 Docker 容器。

例如某个镜像可能包含一个 Ubuntu 操做系统、一个 Apache HTTP Server 以及用户开发的 Web 应用。

镜像有多种生成方法:

  1. 能够从无到有开始建立镜像

  2. 也能够下载并使用别人建立好的现成的镜像

  3. 还能够在现有镜像上建立新的镜像

咱们能够将镜像的内容和建立步骤描述在一个文本文件中,这个文件被称做 Dockerfile,经过执行 docker build <docker-file> 命令能够构建出 Docker 镜像,后面咱们会讨论。

Docker 容器

Docker 容器就是 Docker 镜像的运行实例。

用户能够经过 CLI(docker)或是 API 启动、中止、移动或删除容器。能够这么认为,对于应用软件,镜像是软件生命周期的构建和打包阶段,而容器则是启动和运行阶段。

Registry

Registry 是存放 Docker 镜像的仓库,Registry 分私有和公有两种。

Docker Hub(https://hub.docker.com/) 是默认的 Registry,由 Docker 公司维护,上面有数以万计的镜像,用户能够自由下载和使用。

出于对速度或安全的考虑,用户也能够建立本身的私有 Registry。后面咱们会学习如何搭建私有 Registry。

docker pull 命令能够从 Registry 下载镜像。
docker run 命令则是先下载镜像(若是本地没有),而后再启动容器。

相关文章
相关标签/搜索