Docker常用工具

docker engine

平常说的docker一般就是值docker engine,是由cli及守护程序等组成的一整个docker应用程序,简单类比为电脑上装的QQ、浏览器等软件
file

docker machine

用于管理多台安装有docker engine的主机,比如我有十台电脑,我就可以通过docker machine同时配置和管理这十台电脑上的docker。或者也可以用它创建虚拟机(在虚拟机软件上创建,例如VirtualBox)然后进行管理
file

docker compose

用于组织和编排单台主机上的docker容器,比如我希望创建一个服务,该服务包含一个nginx的docker容器,一个service的docker容器和一个mysql的docker容器。

  • 不用docker compose时的做法:
    1. 创建网络
    2. 编写service端dockerfile、创建镜像、配置网络。。。
    3. 拉取nginx、mysql镜像、修改配置、暴露端口。。。
    4. 运行容器
  • 使用docker compose的做法
    1. 编写docker-compose.yml
      # 不代表真实配置形式,仅便于理解
      ...
      network:...
      services:
          nginx:...
          service:...
          mysql...
      ...
    2. 运行 docker-compose up -d 命令即可

docker swarm

将多台装有docker的主机组合成一个docker集群,并将该集群抽象成单个docker主机,所有对该抽象主机的操作都将同步到集群中各个主机上,且会对该集群的主机进行集群管理,例如容灾处理等
并且通过创建overlay网络使得集群中各主机间能正常通信

  • overlay网络
    不同于bridge只能单主机间容器的通信,它是一种逻辑网络,即在各主机的docker容器之间建立一种虚拟网络实现通信。
    file

与docker machine的区别

可以简单理解为docker machine是对主机上的docker engine进行管理,docker swarm则是对docker中运行的服务进行管理。类比于一个网吧,网吧老板负责机器的采购升级等,而网管则负责将这些电脑连成一个网络并维护该网络

组合使用案例

  1. 使用docker-machine给多台机器安装和配置docker engine
  2. 使用docker-swarm将这些机器汇聚在一起,形成一个虚拟的单一的docker节点
  3. 使用docker-compose编排好你项目所需要的服务,并通过docker-swarm部署到虚拟节点上即可

Leave a Comment