如何在Ubuntu14.04上使用Shipyard部署Wordpress

来自菜鸟教程
跳转至:导航、​搜索

介绍

Shipyard是Docker服务器的管理工具。 Docker 是用于容器化的尖端软件。 Shipyard 允许您查看每个服务器正在运行哪些容器,以便启动或停止现有容器或创建新容器。

在服务器上设置 Shipyard 后,您可以使用图形界面、命令行界面或 API 访问它。 Shipyard 缺乏其他 Docker 编排工具 的一些高级功能,但设置非常简单,免费使用,您可以自己管理和托管。

本教程介绍如何安装 Shipyard,将其连接到 Docker 服务器,并使用它来创建和启动新容器。 最后,您应该在您的服务器上运行 Shipyard 来管理您的 Docker 主机。

先决条件

要遵循本教程,您将需要:

  • 一个带有 Docker 1.5.0 映像的 Ubuntu 14.04 Droplet。

您可以在 Droplet 创建页面的 Applications 选项卡中找到 Docker 1.5.0 镜像选项,在 选择镜像 下。 您还可以按照 本教程 在现有的 Droplet 上安装 Docker。

注意:来自 Ubuntu 14.04 标准存储库的 docker.io 软件包非常旧(版本 0.9.1)。 要使用 Shipyard,您需要使用上面列出的方法之一安装最新版本的 Docker。

第 1 步 — 安装 Shipyard

在这一步中,我们将安装 Shipyard。 本教程中的命令都需要 root 权限,因此以 root 用户身份登录到您的 Droplet 是最简单的。 如果你以非root用户登录,可以运行sudo su切换到root用户。

一旦你运行了 Docker,就很容易安装 Shipyard,因为它是作为 Docker 镜像发布的。 您需要做的就是从 Docker 注册表中提取图像并运行必要的容器。 首先,我们将创建一个 数据卷容器 来保存 Shipyard 的数据库数据。 这个容器不会自己做任何事情; 它是所有 Shipyard 数据位置的方便标签。

docker create --name shipyard-rethinkdb-data shipyard/rethinkdb

现在创建了数据卷容器,我们可以启动 Shipyard 的数据库服务器并将它们链接在一起。

docker run -it -d --name shipyard-rethinkdb --restart=always --volumes-from shipyard-rethinkdb-data -p 127.0.0.1:49153:8080 -p 127.0.0.1:49154:28015 -p 127.0.0.1:29015:29015 shipyard/rethinkdb

这将启动一个运行 RethinkDB 的容器,这是一个分布式数据库,并确保它只能在服务器本身上本地访问。 如果您尝试在浏览器中访问 http://your_server_ip:49153,您应该什么也看不到。

现在 Shipyard 的数据库已经启动,我们可以通过启动另一个容器并将其链接到数据库来运行 Shipyard 本身。

docker run -it -p 8080:8080 -d --restart=always --name shipyard --link shipyard-rethinkdb:rethinkdb shipyard/shipyard

我们现在可以使用端口 8080 访问正在运行的 Shipyard 实例。

第 2 步 — 访问造船厂

现在 Shipyard 正在运行,我们需要访问它。 Shipyard 可以通过 GUI、命令行界面 (CLI) 或 API 访问。 我们将从访问 CLI 开始。

使用 CLI 访问 Shipyard

我们可以通过运行另一个容器来访问 Shipyard CLI。

docker run -ti --rm shipyard/shipyard-cli

-ti 标志确保容器是交互式的,--rm 标志使它成为一次性容器,这意味着一旦我们完成它就会自动删除它。

您现在应该看到 Shipyard CLI 提示符,如下所示:shipyard cli>。 要获取可用命令的列表,您可以输入 shipyard help

此命令提示符尚未连接到我们在步骤 1 中设置的 Shipyard 实例,因此我们先连接它:

shipyard login

它会提示您输入 URL。 输入 http://your_server_ip:8080。 接下来,系统将提示您输入用户名和密码。 用户名和密码默认设置; 输入 admin 作为用户名,输入 shipyard 作为密码。 然后您将返回到 Shipyard 提示符。

现在您以 admin 身份登录到您的 Shipyard 实例。 保留默认密码是一个巨大的安全风险,所以让我们更改它。

shipyard change-password

您需要选择并确认您的新密码。 确保您的新密码是安全的并且您能够记住它。 您现在可以按 CTRL+D 退出 Shipyard CLI。

因为 Shipyard 命令行每次都必须连接到您的 Shipyard 实例,所以您可以在任何能够运行 Docker 容器的系统上运行 Shipyard 命令行,并将其连接到服务器上运行的 Shipyard 实例。

使用 GUI 访问 Shipyard

接下来,我们来看看 Shipyard 的图形界面。 要访问它,请在浏览器中打开 http://your_server_ip:8080。 这应该会显示登录屏幕。 使用用户名 admin 和您选择的新密码。

登录后,Shipyard 将显示 Engines 选项卡,并警告您 Shipyard 集群中还没有引擎。 engine 是能够运行容器的 Docker 主机。 在这里,我们将添加您要使用 Shipyard 管理的每个 Docker 服务器。

第 3 步 — 添加引擎

我们刚刚部署 Shipyard 的 Droplet 也是一个 Docker 主机,因此我们将能够使用 Shipyard 对其进行管理。 在我们这样做之前; 但是,我们需要将服务器作为引擎添加到 Shipyard。

默认情况下,Docker 配置为侦听 Unix 套接字 /var/run/docker.sock,但无法从我们的 Shipyard 实例访问该套接字。 我们需要配置 Docker 来监听端口上的请求。 为此,请使用您喜欢的文本编辑器编辑 Docker 配置文件。 (这里,我们使用 nano。)

nano /etc/default/docker

最后,添加这一行:

DOCKER_OPTS="-H tcp://your_server_ip:4243 -H unix:///var/run/docker.sock"

这将确保 Docker 接受端口 4243 上的连接,但只能来自您的服务器本身。 现在重新启动 Docker 以加载新配置:

service docker restart

这也将重新启动您的 Shipyard 容器。 由于我们使用 --restart=always 运行容器,它们应该会自动恢复。 您可以通过运行来验证这一点:

docker ps

如果由于某种原因 Shipyard 容器没有重新启动,您可以通过运行 docker start shipyard-rethinkdb shipyard 手动重新启动它们。

现在您的 Docker 主机已正确配置,我们可以将其作为引擎添加到 Shipyard。 访问您的 Shipyard GUI 并转到 Engines 选项卡。 单击 + 添加 按钮。 它看起来像这样:

添加以下字段。

  • Name:使用可以让您将引擎识别为当前 Droplet 的名称,例如您的 Droplet 的主机名。
  • Labels:添加到引擎的标签将允许您控制允许在其上运行的容器。 根据您要使用此 Droplet 的目的,您可以使用生产或测试等标签。
  • 地址:使用我们刚刚打开的Docker端口:http://your_server_ip:4243

现在点击底部的 Add 按钮。 Shipyard 现在将连接到您的 Docker 主机,验证连接并将其添加为引擎。 完成此操作后,您将被引导回 Engines 选项卡。 引擎将首先被列为离线。 等待一两秒并刷新页面,您现在应该能够看到 Docker 主机的详细信息。

第 4 步 — 使用 Shipyard 部署容器

现在我们已经将 Docker 主机作为引擎添加到了 Shipyard,我们可以使用 Shipyard 来启动、停止和部署容器。

访问 Shipyard GUI 并查看 Containers 选项卡。 这列出了在您添加到 Shipyard 的每个 Docker 主机上运行的所有容器。 如果你什么都没做,这个选项卡应该至少显示三个容器,其中两个正在运行:

让我们尝试部署一个新的 Wordpress 博客。 使用官方 Docker 存储库映像,我们需要部署一个 MySQL 和 Wordpress 容器。

单击+部署按钮。 下一个屏幕将允许我们配置要部署的容器。 在下面指定的字段中输入信息。

  • 图像:输入mariadb。 (MariaDB 是 MySQL 的一个开源分支。)
  • 容器名称:你可以使用任何你喜欢的,例如 mysql-test
  • Environment:图片说明会告诉你可以使用哪些环境变量。 在这种情况下,请使用 MYSQL_ROOT_PASSWORD=6f23b328e7
  • Type:这决定了如何跨多个引擎部署容器。 在这种情况下,请使用 service
  • Labels:这将用于将容器与引擎匹配。 只需检查您分配给引擎的标签之一。
  • Restart Policy:这决定了容器是否应该在错误或Docker重启后自动重启。 在这种情况下,将其保留在 no 上。

现在单击 部署 。 容器启动需要一段时间。 您应该被重定向回容器列表,其中现在应该有一个名为 mysql-test(或您使用的任何名称)的容器。

您刚刚使用 Shipyard 部署了您的第一个 Docker 容器!

现在我们将使用相同的过程来部署一个链接到我们的 MySQL 容器的 WordPress 容器。 再次点击【X10X】+部署【X22X】按钮,填写如下:

  • 图像wordpress
  • 名称wordpress-test
  • 链接mysql-test:mysql
  • 类型service
  • Labels:检查您用于引擎的任何标签。
  • 重启策略:保留在no上。

还有一件事要做:我们希望能够从任何地方访问这个 WordPress 容器的 Web 内容,所以我们必须公开它的端口 80。 为此,单击标题 Port 旁边的加号。

Protocol下选择TCP,将IP留空,输入1234作为Port80 ] 作为 容器端口

现在您可以单击部署。 再一次,您将需要一段时间才能被重定向回容器列表。 该列表现在还应该显示一个名为 wordpress-test 的容器。 单击它旁边的链接以查看更多详细信息。

Ports 下,您会看到 WordPress 容器的端口 80 现在已发布到服务器的端口 1234。 Shipyard 有助于直接将此列表设置为可点击的链接,您可以使用该链接转到已发布的地址。

单击此链接。 这将带您进入 WordPress 安装向导。 填写该页面上的字段后,您将能够登录到全新的 WordPress 博客并将其视为一个网站。

结论

您现在已经成功地使用 Shipyard 在您的 Docker 主机上部署了一个实际的应用程序!

您已在服务器上启动并运行 Shipyard。 您还应该能够使用 Docker 配置其他服务器并将它们连接到您的 Shipyard 实例以进行管理。 您还学习了如何使用 CLI 和 GUI 连接到 Shipyard 实例,并学习了如何使用 GUI 在 Docker 主机上部署新容器。

现在,您可以随意试用 Docker Registry 上提供的数千个 Web 应用程序。 例如,您可以部署一个 Nginx 容器,以在 本教程 中描述的更易读的 URL 上托管您的新 WordPress 博客。