目录
docker 名词解释
docker 简介
docker-machine 简介
docker-compose 简介
docker swarm 简介
docker service 简介
docker stack 简介
总结
官方参考文档 https://docs.docker.com/machine/overview/
本文主要介绍 docker 是什么, 有什么, 以及工具链的概述.
docker 是一个比较新容器技术, 当然容器技术并不是什么新技术, 如果你没有接触过容器的概念, 可能你有种一夜之间容器遍天下的感觉. 我最早接触 docker 也是 2015 前后, 一次偶然的机会去尝试 cloud foundry, 便得知了容器是何物, 遇见 docker 后甚是喜爱, 因为工作环境一直不得尝试, 所以一直不能深入的去研究它, 今天的 docker 与几年前相比已经有了很大的变化, 各种工具链都相对完善, 技术也相对成熟, 随着微服务的诞生, docker 的应用场景更是被发挥的淋漓尽致, 如果你没有赶上又丑又庞大的企业级应用, 那么此刻短小精悍的微服务时代你可以尽情体验一番.
docker 名词解释
docker 官方解释为 docker 引擎, 一个集 client 与 server 一身的容器技术.
docker 镜像, 比如一个系统 iso 文件, 通常被叫做镜像, 它只是一个静态文件而已.
docker 容器, 当一个 iso 文件被安装硬盘上后就成一个系统, 你可以将这个 iso 安装到多个硬盘上, 那么每个系统就对应着 docker 容器的概念, 或者你也可以理解成实例, 容器 (实例) 是动态的而镜像是静态的.
docker 简介
docker 是一个容器化技术, 用来管理容器, 那么作为容器, 它可以容纳一个或多个程序.
docker 容器是一个独立程序, 什么叫独立的程序, 它可以打包你的程序并与系统内的其它程序之间隔离, 隔离边界就是 docker 容器本身.
docker 容器是一个可以执行的完整的整体, 创建 docker 容器的时候, docker 会打包你在容器内要运行的程序以及程序的所有依赖(当然这不是自动的, docker 需要你明确指出你的程序依赖什么).
docker 容器是一个跨平台应用, docker 容器可以运行在 unix/Linux/win 等平台(但是 win 容器与 unix/Linux 不兼容, docker 最初只支持 Linux 内核),docker 容器不依赖你的当前系统, 只依赖 docker 引擎本身(docker 引擎是 docker 的简称).
docker-machine 简介
docker-machine 用来创建 docker 运行环境, 你可以使用 docker-machine 创建基于的 docker 运行环境, 这里的驱动是指多种虚拟机环境, 比如: VirtualBox,vm,hyper-v 等, 更多驱动类型在这里.
docker-machine 用来管理 docker 运行环境, 如果你在上一步中创建了多种驱动类型的 docker 运行环境, 那么 docker-machine 可以来管理这些 docker 运行环境, 比如查看环境信息, 比如删除, 修改环境, 比如在指定的 docker 运行环境中执行 shell 命令等.
docker-compose 简介
docker-compose 主要用来创建 docker 容器, 可能你要问, 既然 docker 可以创建容器为什么还要 docker-compose 呢?
举个例子: 使用 shell 命令创建一个文件夹, 并在文件夹内创建一个文件, 只需要执行两条 shell 命令即可, 如果让你在另外的很多机器上也做同样的操作呢? 难道你要每个机器都手动输入命令吗? 答案是否定的, 你肯定想到的是使用 shell 脚本解决问题, 将创建文件夹和创建文件的命令写入脚本中并将脚本分发到不同的机器上运行. 没错 docker-compose 就是用来干这个的, 你可以将需要创建的一个或多个容器写入一个 docker-compose 支持的脚本中.
其实 docker-compose 支持的是一个 YAML 扩展的文件, 这里记录了你要创建的一个或多个容器的配置信息, 这样就可以将 YAML 文件分发到不同的机器上并通过 docker-compoe 创建容器.
docker swarm 简介
docker swarm 用来管理 docker 集群, 当我们来部署一个服务的时候, 我们通常会考虑服务会不会因为特殊情况终止运行, 为了避免特殊情况导致的服务终止, 通常一个常用的办法就是监控, 如果服务意外终止我们就重新启动它, 这也是 docker swarm 要做的事, 除此之外 docker swarm 还会将服务部署到任意一集群节点中, 保证服务始终可用.
docker service 简介
docker service 用来创建 docker 服务, 那么什么是 docker 服务, 假如你要部署一个 docker 容器, 你通常可以运行 docker run 命令, 如果此时在一个 docker 集群中, 那么该命令只会在运行命令的机器上创建一个容器, 如果你要部署的是 docker 容器的多个实例, 那么 docker service 就是来解决这个问题的, 你只需要通过 docker service run 命令就可以在集群的任意节点上部署你的容器实例, 你也可以指定需要运行的容器实例个数, 这通常只需设置指定的参数就行了.
docker stack 简介
此时, 我还不是特别明白 docker stack 的作用, 从官网的介绍我理解为 docker compose + docker swarm, 这个解释似乎有点牵强, 暂时先这么理解吧, 毕竟 docker stack 在 docker swarm 环境下才有意义, 以后理解了在更新这段简介.
总结
docker 中的一些工具及感念大概也就这么多, 这里只是简单的介绍了一下, 如果你是新手那么这篇文章一定对你有很多的帮助, 因为我也是这么走过来的, 不期望自己的文章多高深, 只希望能你让你快速的理解 docker 是什么.
回顾一下:
docker 是一个集 client 与 server 一身的容器化技术, 你可以通过 docker 命令来创建一些 docker 容器, 你也可通过 docker compose 命令来批量创建一些 docker 容器, 如果你的环境足够大, 那么 docker swarm 可以让你对 docker 的管理更加方便, docker service 可以让你创建可靠的服务实例, docker stack 可以让你更方便的部署 docker 容器.
来源: https://www.cnblogs.com/guodf/p/9807477.html