【赵渝强老师】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的体系架构。

相关推荐
志栋智能17 分钟前
超自动化运维与DevOps的深度融合
运维·网络·人工智能·安全·自动化
AugustSkys3 小时前
从 Docker 到 Containerd:Kubernetes 时代容器运行时完全指南
docker·容器·kubernetes·containerd
前端世界8 小时前
Linux服务器实战:NTP时间同步、SELinux权限与rsyslog日志管理,一次搞懂三大运维问题
linux·运维·服务器
Android系统攻城狮8 小时前
Linux Gstreamer深度解析之gst_audio_converter_new调用流程与实战(二十)
linux·运维·服务器·gstreamer音视频·音视频进阶
莫陌尛.8 小时前
Docker MySQL 删表卡死、执行超时(MDL锁阻塞)问题复盘与根治方案
mysql·docker·容器
海宇服务8 小时前
零信任架构实战:基于海宇对外投资历史查询服务构建自动化供应商准入网关
运维·人工智能·架构·自动化
上海云盾-小余8 小时前
BGP 高防底层原理:TCP 异常流量识别与清洗机制
运维·网络·tcp/ip
言乐69 小时前
Python加速器4跨境网络加速器
运维·服务器·开发语言·网络·python
蓝速科技12 小时前
医院导诊 AI 数字人一体机场景适配与落地指南丨蓝速科技
运维·数据库·人工智能·科技·自然语言处理·技术分享
星辰徐哥12 小时前
本地视频预览别只自己看:把Remotion动效项目发给客户远程验收
docker·ai·node.js·html·音视频·react·remotion