在VirtualBox中使用Docker Machine部署与管理Docker主机

如果你正在寻找一种高效、可复现的方式来管理本地Docker环境,尤其是在VirtualBox虚拟机上,那么今天的主题绝对值得花几分钟深入了解。我们将一步步演示,如何借助Docker Machine这个强大的工具,像管理云端资源一样,轻松创建和操控本地的Docker主机。

Docker Machine本质上是一个部署引擎。它把在不同环境(你的笔记本电脑、数据中心虚拟机或是公有云实例)中配置并启动一个标准化Docker主机的过程,抽象成了简洁的命令。这意味着,无论底层是VirtualBox还是AWS,你都能用同一套熟悉的Docker命令行工具与之交互。这种一致性,正是它最大的魅力所在。

下面,我们就通过一系列具体操作,看看如何从零开始完成部署。

第一步:安装Docker Machine

Docker Machine对主流Linux发行版都有很好的支持。安装过程相当直接:从GitHub官方仓库下载独立的二进制文件,赋予执行权限即可。你可以根据你的系统架构(64位或32位)选择对应的下载链接。

以64位系统为例,使用curl工具下载0.2.0版本(请注意,实际使用时应替换为当前最新版本号):


复制代码

代码如下:

# curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-amd64 > /usr/local/bin/docker-machine

下载完成后,别忘了让它拥有执行权限:


复制代码

代码如下:

# chmod +x /usr/local/bin/docker-machine

怎么验证安装成功?运行一个简单的版本检查命令就能一目了然。


复制代码

代码如下:

# docker-machine -v

VirtualBox中使用Docker Machine来管理Docker主机

为了能在本地发出Docker命令,你还需要安装Docker客户端。同样,通过curl获取并设置权限:


复制代码

代码如下:

# curl -L https://get.docker.com/builds/linux/x86_64/docker-latest > /usr/local/bin/docker

# chmod +x /usr/local/bin/docker

第二步:创建VirtualBox虚拟机

安装好Docker Machine后,重头戏来了——创建虚拟机。这个过程出奇的简单,只需要一条命令。关键在于 --driver virtualbox 这个参数,它明确告诉Docker Machine:“请在VirtualBox里为我创建一台机器”。命令最后的“linux”则是你为这台虚拟机起的名字。

执行这条命令后,Docker Machine会自动下载一个名为boot2docker的轻量级Linux镜像(专门为运行Docker而优化),并用它在VirtualBox中初始化一台新虚拟机。


复制代码

代码如下:

# docker-machine create --driver virtualbox linux

VirtualBox中使用Docker Machine来管理Docker主机

创建完成后,用列表命令检查一下状态。如果看到ACTIVE列下有一个醒目的星号(*),恭喜你,虚拟机已经准备就绪。


复制代码

代码如下:

# docker-machine ls

VirtualBox中使用Docker Machine来管理Docker主机

第三步:设置环境变量

现在,我们需要让本地的Docker客户端知道应该与哪台机器对话。这通过配置一组环境变量来实现。Docker Machine提供了一个非常方便的命令来自动完成这个设置。


复制代码

代码如下:

# eval "$(docker-machine env linux)"

# docker ps

运行 docker-machine env linux 命令本身,会打印出需要导出的具体变量,主要包括Docker主机的TCP地址和TLS认证证书的路径。每次打开新的终端会话,都需要重新执行一次上述的eval命令来建立连接。


复制代码

代码如下:

# docker-machine env linux

export DOCKER_TLS_VERIFY=1

export DOCKER_CERT_PATH=/Users//.docker/machine/machines/dev

export DOCKER_HOST=tcp://192.168.99.100:2376

第四步:运行Docker容器

环境配置妥当,是时候体验成果了。我们运行一个简单的测试容器来验证一切是否正常。这个命令会从Docker Hub拉取微小的busybox镜像,并在容器内执行一条echo命令。


复制代码

代码如下:

# docker run busybox echo hello world

VirtualBox中使用Docker Machine来管理Docker主机

看到“hello world”的输出,意味着你的Docker主机已经在VirtualBox中完美运行起来了。

第五步:获取Docker主机的IP地址

当你需要访问运行在容器内的服务时(比如一个Web应用),知道自己Docker主机的IP地址至关重要。一条简单的命令就能解决。


复制代码

代码如下:

# docker-machine ip

VirtualBox中使用Docker Machine来管理Docker主机

获取到这个IP后,你就能通过“IP:端口”的方式访问容器暴露出来的任何服务了。

第六步:主机生命周期管理

Docker Machine带来的便利远不止于创建。它提供了一套完整的主机管理命令。当你用完Docker主机,想释放系统资源时,可以轻松停止它。需要时再一键启动。

停止或启动所有由Docker Machine管理的主机:


复制代码

代码如下:

# docker-machine stop

# docker-machine start

当然,你也可以针对单台主机进行操作,比如我们刚刚创建的名为“linux”的这台:


复制代码

代码如下:

$ docker-machine stop linux

$ docker-machine start linux

总结

走完这一套流程,我们成功地在VirtualBox上建立了一个完全受控的Docker开发环境。整个过程清晰地展示了Docker Machine如何将基础设施的复杂性封装在简单的命令之后。

它的价值在于提供了一种统一、可编程的接口。无论是本地VirtualBox、数据中心的VMware,还是云端的AWS或Azure,你都能用几乎相同的方式去部署和管理Docker主机。这种抽象能力,对于追求效率和一致性的开发与运维工作流来说,无疑是一个强有力的翻跟斗。

本文转载于:https://www.jb51.net/os/other/383427.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。