天天看点

Docker 之 Docker Machine

docker machine 是 docker 官方编排(orchestration)项目之一,负责在多种平台上快速安装 docker 环境。

docker machine 是一个工具,它允许你在虚拟宿主机上安装 docker engine ,并使用 docker-machine 命令管理这些宿主机。你可以使用 machine 在你本地的 mac 或 windows box、公司网络、数据中心、或像 aws 或 digital ocean 这样的云提供商上创建 docker 宿主机。

使用 docker-machine 命令,你可以启动、审查、停止和重新启动托管的宿主机、升级 docker 客户端和守护程序、并配置 docker 客户端与你的宿主机通信。

docker machine 使你能够在各种 linux 上配置多个远程 docker 宿主机。 此外,machine 允许你在较早的 mac 或 windows 系统上运行 docker,如上一主题所述。 docker machine 有这两个广泛的用例。

我有一个较旧的桌面系统,并希望在 mac 或 windows 上运行 docker

Docker 之 Docker Machine

如果你主要在不符合新的 docker for mac 和 docker for windows 应用程序的旧 mac 或 windows 笔记本电脑或台式机上工作,则需要 docker machine 来在本地“运行docker”(即docker engine)。在 mac 或 windows box 中使用 docker toolbox 安装程序安装 docker machine 将为 docker engine 配置一个本地的虚拟机,使你能够连接它、并运行 docker 命令。

我想在远程系统上配置 docker 宿主机

Docker 之 Docker Machine

docker engine linux 系统上原生地运行。如果你有一个 linux 作为你的主系统,并且想要运行 docker 命令,所有你需要做的就是下载并安装 docker engine 。然而,如果你想要在网络上、云中甚至本地配置多个 docker 宿主机有一个有效的方式,你需要 docker machine。

无论你的主系统是 mac、windows 还是 linux,你都可以在其上安装 docker machine,并使用 docker-machine 命令来配置和管理大量的 docker 宿主机。它会自动创建宿主机、在其上安装 docker engine 、然后配置 docker 客户端。每个被管理的宿主机(“machine”)是 docker 宿主机和配置好的客户端的结合。

当人们说“docker”时,他们通常是指 docker engine,它是一个客户端 - 服务器应用程序,由 docker 守护进程、一个rest api指定与守护进程交互的接口、和一个命令行接口(cli)与守护进程通信(通过封装rest api)。docker engine 从 cli 中接受docker 命令,例如<code>docker run &lt;image&gt;</code>、<code>docker ps</code> 来列出正在运行的容器、<code>docker images</code>来列出镜像,等等。

Docker 之 Docker Machine

docker machine 是一个用于配置和管理你的宿主机(上面具有 docker engine 的主机)的工具。通常,你在你的本地系统上安装 docker machine。docker machine有自己的命令行客户端 docker-machine 和 docker engine 客户端 docker。你可以使用 machine 在一个或多个虚拟系统上安装 docker engine。

这些虚拟系统可以是本地的(就像你在 mac 或 windows 上使用 machine 在 virtualbox 中安装和运行 docker engine 一样)或远程的(就像你使用 machine 在云提供商上 provision dockerized 宿主机一样)。dockerized 宿主机本身可以认为是,且有时就称为,被管理的“machines”。

Docker 之 Docker Machine

docker machine 安装很简单

查看是否存在可用的主机

创建一个主机:

这个命令会下载 boot2docker,基于 boot2docker 创建一个虚拟主机。boot2docker 是一个轻量级的 linux 发行版,基于专门为运行 docker 容器而设计的 tiny core linux 系统,完全从 ram 运行,45mb左右,启动时间约5s。

再次查看服务列表

发现已经存在一个虚拟主机

创建主机成功后,可以通过 env 命令来让后续操作对象都是目标主机。

相当于配置了一个环境变量 default,后续根据提示在命令行输入命令之后就可以操作 default 主机。

可以通过 ssh 登录到主机

连接到主机之后你就可以在其上使用 docker 了,退出虚拟机使用命令:<code>exit </code>

更多参数请使用 docker-machine –help 命令查看。

docker machine 最主要有两个作用:

使用 docker machine 方便在不同的环境中使用 docker ,比如:win/mac

使用 docker machine 方便在云环境下批量部署 docker环境,比如:私有云,公有云批量安装docker环境

virtualbox 安装很麻烦,我使用的虚拟机和云主机来做实验均没有安装成功,最后使用的是 docker 官方提供的 windows 安装包来完成的 virtualbox 相关操作。附 virtualbox 官网:https://www.virtualbox.org/wiki/downloads