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

相关推荐
要长脑子了95612 分钟前
【论坛系统自动化功能测试报告】
运维·python·功能测试·selenium·pycharm·自动化·模块测试
君科程序定做22 分钟前
容器 vs 虚拟机
微服务·云原生·容器·服务发现
苹果醋31 小时前
react_05create-react-app脚手架详细解析(export)
java·运维·spring boot·mysql·nginx
G_H_S_3_1 小时前
【网络运维】Linux:简单DHCP服务器的部署
linux·运维·服务器·网络
Black:)2 小时前
证书更新后 K8s Master状态NotReady
容器·kubernetes
William.csj7 小时前
服务器——“查询不到显卡驱动,且输入nvidia-smi报错”的解决办法
运维·服务器
LgZhu(Yanker)7 小时前
27、企业维修保养(M&R)全流程管理:从预防性维护到智能运维的进阶之路
大数据·运维·人工智能·erp·设备·维修·保养
sheji1057 小时前
docker启动出现Error response from daemon: Container的问题【已解决】
运维·docker·容器
Sally璐璐9 小时前
LVS-DR模式高性能负载均衡实战
运维
路由侠内网穿透10 小时前
本地部署 SQLite 数据库管理工具 SQLite Browser ( Web ) 并实现外部访问
运维·服务器·开发语言·前端·数据库·sqlite