如何在云服务提供商的平台上使用 Docker Machine

发布于 2024-10-02 01:24:15 字数 6082 浏览 5 评论 0

大家好,今天我们来了解如何使用 Docker Machine 在各种云服务提供商的平台上部署 Docker。Docker Machine 是一个可以帮助我们在自己的电脑、云服务提供商的平台以及我们数据中心的机器上创建 Docker 机器的应用程序。

它为创建服务器、在服务器中安装 Docker、根据用户需求配置 Docker 客户端提供了简单的解决方案。驱动 API 对本地机器、数据中心的虚拟机或者公用云机器都适用。Docker Machine 支持 Windows、OSX 和 Linux,并且提供一个独立的二进制文件,可以直接使用。它让我们可以充分利用支持 Docker 的基础设施的生态环境合作伙伴,并且使用相同的接口进行访问。它让人们可以使用一个命令来简单而迅速地在不同的云平台部署 Docker 容器。

1. 安装 Docker Machine

Docker Machine 可以很好地支持每一种 Linux 发行版。首先,我们需要从 Github 网站下载最新版本的。这里我们使用 curl 来下载目前最新 0.2.0 版本的 Docker Machine。

在 64 位操作系统运行:

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

在 32 位操作系统运行:

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

下载最新版本的 Docker Machine 并将 docker-machine 文件放到了/usr/local/bin/后,添加执行权限:

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

完成如上操作后,我们需要确认已经成功安装 docker-machine 了。可以运行如下命令检查,它会输出系统中 docker-machine 的版本:

# docker-machine -v

Installing Docker Machine

要在我们的机器上启用 docker 命令,需要使用如下命令安装 Docker 客户端:

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

2. 创建机器

在自己的 Linux 机器上安装好了 Docker Machine 之后,我们想要将一个 docker 虚拟机部署到云服务器上。Docker Machine 支持几个流行的云平台,如 igital Ocean、Amazon Web Services(AWS)、Microsoft Azure、Google Cloud Computing 及其它等等,所以我们可以在不同的平台使用相同的接口来部署 Docker。本文中我们会使用 digitalocean 驱动在 Digital Ocean 的服务器上部署 Docker,--driver 选项指定 digitalocean 驱动,--digitalocean-access-token 选项指定 Digital Ocean Control Panel 提供的 API Token,命令最后的是我们创建的 Docker 虚拟机的机器名。运行如下命令:

# docker-machine create --driver digitalocean --digitalocean-access-token <API-Token> linux-dev

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

Docker Machine Digitalocean Cloud

注意 : 这里 linux-dev 是我们将要创建的机器的名称。 <API-Token> 是一个安全 key,可以在 Digtal Ocean Control Panel 生成。要找到这个 key,我们只需要登录到我们的 Digital Ocean Control Panel,然后点击 API,再点击 Generate New Token,填写一个名称,选上 Read 和 Write。然后我们就会得到一串十六进制的 key,那就是 <API-Token> ,简单地替换到上边的命令中即可。

运行如上命令后,我们可以在 Digital Ocean Droplet Panel 中看到一个具有默认配置的 droplet 已经被创建出来了。

DigitalOcean Droplet Panel

简便起见,docker-machine 会使用默认配置来部署 Droplet。我们可以通过增加选项来定制我们的 Droplet。这里是一些 digitalocean 相关的选项,我们可以使用它们来覆盖 Docker Machine 所使用的默认配置。

  • --digitalocean-image "ubuntu-14-04-x64" 用于选择 Droplet 的镜像
  • --digitalocean-ipv6 enable 启用 IPv6 网络支持
  • --digitalocean-private-networking enable 启用专用网络
  • --digitalocean-region "nyc3" 选择部署 Droplet 的区域
  • --digitalocean-size "512mb" 选择内存大小和部署的类型

如果你想在其他云服务使用 docker-machine,并且想覆盖默认的配置,可以运行如下命令来获取 Docker Mackine 默认支持的对每种平台适用的参数。

# docker-machine create -h

3. 选择活跃主机

部署 Droplet 后,我们想马上运行一个 Docker 容器,但在那之前,我们需要检查下活跃主机是否是我们需要的机器。可以运行如下命令查看。

# docker-machine ls

Docker Machine List

ACTIVE 一列有“*”标记的是活跃主机。

现在,如果我们想将活跃主机切换到需要的主机,运行如下命令:

# docker-machine active linux-dev

注意 :这里,linux-dev 是机器名,我们打算激活这个机器,并且在其上运行 Docker 容器。

4. 运行一个 Docker 容器

现在,我们已经选择了活跃主机,就可以运行 Docker 容器了。可以测试一下,运行一个 busybox 容器来执行 echo hello word 命令,这样就可以得到输出:

# docker run busybox echo hello world

注意:如果你试图在一个装有 32 位操作系统的宿主机部署 Docker 容器,使用 SSH 来运行 docker 是个好办法。这样你就可以简单跳过这一步,直接进入下一步。

5. SSH 到 Docker 机器中

如果我们想在机器或者 Droplet 上控制之前部署的 Docker 机器,可以使用 docker-machine ssh 命令来 SSH 到机器上:

# docker-machine ssh

Docker Machine SSH

SSH 到机器上之后,我们可以在上边运行任何 Docker 容器。这里我们运行一个 nginx:

# docker run -itd -p 80:80 nginx

操作完毕后,我们需要运行 exit 命令来退出 Droplet 或者服务器。

# exit

5. 删除主机

删除在运行的主机以及它的所有镜像和容器,我们可以使用 docker-machine rm 命令:

# docker-machine rm linux-dev

Docker Machine Remove All

使用 docker-machine ls 命令检查是否成功删除了:

# docker-machine ls

Docker Machine Remove Check

6. 在不使用驱动的情况新增一个主机

我们可以在不使用驱动的情况往 Docker 增加一台主机,只需要一个 URL。它可以使用一个已有机器的别名,所以我们就不需要每次在运行 docker 命令时输入完整的 URL 了。

$ docker-machine create --url=tcp://104.131.50.36:2376 custombox

7. 管理主机

如果你已经让 Docker 运行起来了,可以使用简单的 docker-machine stop 命令来停止所有正在运行的主机,如果需要再启动的话可以运行 docker-machine start

# docker-machine stop
# docker-machine start

你也可以使用如下命令来使用机器名作为参数来将其停止或启动:

$ docker-machine stop linux-dev
$ docker-machine start linux-dev

总结

Docker Machine 是一个非常棒的工具,可以使用 Docker 容器快速地部署服务。文中我们使用 Digital Ocean Platform 作演示,但 Docker Machine 还支持其他平台,如 Amazon Web Service、Google Cloud Computing。使用 Docker Machine,快速、安全地在几种不同平台部署 Docker 容器变得很简单了。因为 Docker Machine 还是 Beta 版本,不建议在生产环境使用。如果你有任何问题、建议、反馈,请在下方的评论框中写下来,我们会改进或者更新我们的内容。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

女中豪杰

暂无简介

0 文章
0 评论
479 人气
更多

推荐作者

qq_z5gHLI

文章 0 评论 0

圈圈圆圆圈圈

文章 0 评论 0

alipaysp_h2Vbo4sv6k

文章 0 评论 0

初见你

文章 0 评论 0

清风无影

文章 0 评论 0

云胡

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文