【赵渝强老师】Docker三剑客

在Docker容器中提供了三个非常有用的工具,它们分别是:Docker Compose、Docker Machine和Docker Swarm。下面分别进行介绍。

视频讲解如下:

Docker三剑客
【赵渝强老师】Docker的三剑客

一、容器编排工具Docker Compose

在使用Docker部署应用程序的时候,可以通过定义Dockerfile来完成应用服务的描述,再使用docker build、docker run等命令操作容器。但是随着应用架构的不断地复杂化和微服务的应用,通常在一个系统中需要包含多个模块,而每一个模块一般情况下都会通过Docker的容器部署到多个容器中。如果每一个模块都通过手动方式来完成部署,效率是非常低。同时也不利于系统的维护和扩展。

使用Docker Compose可以非常方便来定义和运行复杂应用系统,它是Docker提供的一个服务编排工具。Docker Compose不再使用shell脚本命令来管理容器,而是通过定义一个yml的服务描述文件来完成对Docker容器的管理。

下面的yml文件将会使用Docker Compose部署大数据计算引擎Flink集群。

yaml 复制代码
version: "2.1"
services:
  jobmanager:
    image: flink:1.12.7-scala_2.11
    expose:
      - "6123"
    ports:
      - "8081:8081"
    command: jobmanager
    environment:
      - JOB_MANAGER_RPC_ADDRESS=jobmanager
    volumes:
      - /root/flink-conf.yaml:/root/flink-conf.yaml
    restart: always

  taskmanager:
    image: flink:1.12.7-scala_2.11
    expose:
      - "6121"
      - "6122"
    depends_on:
      - jobmanager
    command: taskmanager
    links:
      - "jobmanager:jobmanager"
    environment:
      - JOB_MANAGER_RPC_ADDRESS=jobmanager
    volumes:
      - /root/flink-conf.yaml:/root/flink-conf.yaml
    restart: always

二、容器远程管理工具Docker Machine

Docker Machine是Docker官方提供的一个远程管理工具。通过使用Docker Machine,可以帮助开发人员在远程主机上安装Docker;或者在远程的虚拟主机上直接安装虚拟机并在虚拟机中安装Docker。Docker Machine还提供了相应的命令来管理这些远程的Docker环境和虚拟机。下图是官方提供的一张关于Docker Machine的图片,很形象地说明了Docker Machine的功能。

Docker Machine可以在多种平台上安装使用,包括Linux、Windows和MacOS。本书重点以Linux为基础来介绍Docker Machine的安装和使用。Docker Machine使用go语言开发,并且依赖Docker的引擎。因此在使用Docker Machine之前,需要在本地先安装Docker的环境。

三、容器集群管理工具Docker Swarm

Docker Swarm是Docker官方提供的一款集群管理工具,它的主要作用是把若干台Docker宿主机抽象为一个整体,并且通过一个入口统一管理这些Docker宿主机上的各种Docker资源。Docker Swarm和Kubernetes比较类似,但是它更加轻量级,但具有的功能也较Kubernetes少一些。有了Docker Swarm集群后,便可以实现应用程序的负载均衡与失败迁移的功能。

Docker从1.12.0 版本开始,便已经将DockerSwarm集成进了Docker的引擎中。因此,Docker Swarm不需要单独进行安装。由于Docker Swarm内置了服务发现的功能,因此也不再需要进行服务发现配置了。Docker Swarm与Docker Compose类似,都是Docker官方提供的服务编排工具。但是二者所不同的是,Docker Compose 是在单个宿主机上创建多个容器,从而进行服务编排的工具;而 Docker Swarm 则可以在多个服务器或宿主机上创建容器,从而组成集群提供相应的服务。因此,从功能上看,Docker Swarm比Docker Compose更加强大。下图展示了Docker Swarm的体系架构。

相关推荐
AI慧聚堂21 分钟前
自动化 + 人工智能:投标行业的未来是什么样的?
运维·人工智能·自动化
不爱学英文的码字机器24 分钟前
[Linux] Shell 命令及运行原理
linux·运维·服务器
cdut_suye35 分钟前
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
java·linux·运维·服务器·c++·人工智能·python
qq_4336184439 分钟前
shell 编程(三)
linux·运维·服务器
苹果醋31 小时前
2020重新出发,MySql基础,MySql表数据操作
java·运维·spring boot·mysql·nginx
两张不够花1 小时前
Jenkins 持续集成部署
运维·jenkins
码农土豆1 小时前
PaddlePaddle飞桨Linux系统Docker版安装
linux·docker·paddlepaddle
Hacker_xingchen1 小时前
天融信Linux系统安全问题
linux·运维·系统安全
丘狸尾1 小时前
[cisco 模拟器] ftp服务器配置
android·运维·服务器
黑客老陈1 小时前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
运维·服务器·前端·网络·安全·web3·xss