Docker 常见生态工具介绍

Docker 大家族

  • Docker Machine:已被弃用,官方推荐 Docker Desktop替换。
  • Docker Registry:镜像仓库工具。
  • Docker Toolbox:已被弃用,官方推荐 Docker Desktop替换。
  • Docker Compose:定义和运行多容器 Docker 应用程序的工具。
  • Docker Desktop:一个用于在win、macOS、linux安装Docker的工具。
  • Docker Swarm:官方Docker集群管理工具,类似 K8s。

Docker Machine

已被弃用,官方推荐使用 Docker Desktop 替换。

Docker Machine Logo

Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。

Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker。

Docker Machine 作用图

Docker Machine 管理的虚拟主机可以是机上的,也可以是云供应商,如阿里云,腾讯云,AWS,或 DigitalOcean。

使用 docker-machine 命令,您可以启动,检查,停止和重新启动托管主机,也可以升级 Docker 客户端和守护程序,以及配置 Docker 客户端与您的主机进行通信。

Docker Registry

Docker Registry Logo

Docker Registry 是镜像仓库工具,Docker Hub 是世界上最大的容器镜像库和社区,提供镜像存储服务,对开源镜像免费,私有镜像收费。

Docker Hub

Harbor:基于 Docker Registry开发的一个镜像仓库工具,常用于构建私有镜像仓库。

Docker Toolbox

已被弃用,官方推荐使用 Docker Desktop 替换。

Docker Toolbox Logo

Docker Toolbox是一个安装程序,用于在旧的Mac和Windows系统(如:Windows Home editions, Windows 7, Windows 8 and users of VirtualBox)上快速安装和启动Docker环境,这些系统不符合新的Docker Desktop for Mac和Docker Desktop for Windows应用程序的要求。

Docker Toolbox 包括:

  • Docker client:客户端
  • Docker Compose
  • Docker Machine
  • Kitematic:Docker可视化管理工具
  • VirtualBox:虚拟机

Docker Compose

Docker Compose Logo

Docker Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

Docker Compose 使用步骤:

  1. 使用 Dockerfile 定义应用程序的环境。
  2. 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  3. 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

docker-compose.yml 的配置案例如下

# yaml 配置实例
version: '3'
services:
  web:
    build: .
    ports:
   - "5000:5000"
    volumes:
   - .:/code
    - logvolume01:/var/log
    links:
   - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

Docker Swarm

Docker Swarm Logo

Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。

支持的工具包括但不限于以下各项:

  • Dokku
  • Docker Compose
  • Docker Machine
  • Jenkins

Docker Swarm底层原理

如下图所示,swarm 集群由管理节点(manager)和工作节点(work node)构成。

  • swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。
  • work node:即图中的 available node,主要负责运行相应的服务来执行任务(task)。

swarm manager、work node 关系图

通过 swarm manager 管理多个 nginx 容器

Docker Desktop

Docker Desktop 是一个易于安装的应用程序,适用于您的 Mac 或 Windows 环境,使您能够构建和共享容器化应用程序和微服务。 包括:

  • Docker Engine
  • Docker CLI 客户端
  • Docker Compose
  • Docker Content Trust
  • Kubernetes
  • Credential Helper

核心特性:

  • 能够以多种语言和框架在任何云平台上的容器化和共享任何应用程序
  • 易于安装和设置完整的 Docker 开发环境
  • 包括最新版本的 Kubernetes
  • 自动更新以使您保持最新状态并保护
  • 在 Windows 上,能够在 Linux 和 Windows Server 环境之间切换构建应用程序
  • 本机 Windows Hyper-V 虚拟化的快速可靠性
  • 能够通过 Windows 机器上的 WSL 2 在 Linux 上本地工作
  • 代码和数据的卷安装,包括文件更改通知以及轻松访问 Localhost 网络上的运行容器
  • 企业内开发和调试带有支持的 IDE