Shipyard是Docker服务器的管理工具。Docker是用于集装箱化的尖端软件。Shipyard允许您查看每个服务器正在运行的容器,以便启动或停止现有容器或创建新容器。
在服务器上设置Shipyard后,可以使用图形界面,命令行界面或API访问它。Shipyard缺少其他Docker编排工具的一些高级功能,但设置非常简单,免费使用,您可以自己管理和托管它。
本教程介绍如何安装Shipyard,将其连接到Docker服务器,以及如何使用它来创建和启动新容器。最后,您应该在服务器上运行Shipyard来管理Docker主机。
要学习本教程,您需要:
没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。
您可以在腾讯云CVM创建页面的“ 选择镜像”下的“ 应用程序”选项卡中找到Docker 1.5.0映像选项。
注意:Ubuntu 14.04的标准存储库中的docker.io
包非常旧(版本0.9.1)。要使用Shipyard,您需要使用上面列出的方法之一安装最新版本的Docker。
在此步骤中,我们将安装Shipyard。本教程中的命令都需要root权限,因此最简单的方法是以root用户身份登录腾讯云CVM。如果您以非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实例。
现在Shipyard正在运行,我们需要访问它。可以通过GUI,命令行界面(CLI)或API访问船厂。我们首先通过CLI访问。
我们可以通过运行另一个容器来访问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提示符。
现在您以管理员身份登录Shipyard实例。保留默认密码是一个巨大的安全风险,所以让我们改变它。
shipyard change-password
您需要选择并确认新密码。确保您的新密码是安全的,并且您将能够记住它。您现在可以按CTRL + D退出Shipyard CLI。
由于Shipyard命令行每次都必须连接到Shipyard实例,因此您可以在任何能够运行Docker容器的系统上运行Shipyard命令行,并将其连接到服务器上运行的Shipyard实例。
接下来,我们将看看Shipyard的图形界面。要访问它,请在浏览器中打开http://your_server_ip:8080
。这应该显示登录屏幕。使用用户名admin
和您选择的新密码。
登录后,Shipyard将显示“ 引擎”选项卡,并警告您尚未在Shipyard群集中找到引擎。一个引擎是能够运行集装箱的码头工人主机。在这里,我们将添加您要使用Shipyard管理的每个Docker服务器。
我们刚刚部署Shipyard的腾讯云CVM也是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并转到“ 引擎”选项卡。单击+添加按钮。它看起来像这样:
添加以下字段。
http://your_server_ip:4243
现在单击底部的“ 添加”按钮。Shipyard现在将连接到您的Docker主机,验证连接,并将其添加为引擎。完成此操作后,您将被定向回“ 引擎”选项卡。首先将引擎列为离线引擎。等一两秒刷新页面,您现在应该可以看到Docker主机的详细信息。
现在我们已将Docker主机添加到Shipyard作为引擎,我们可以使用Shipyard来启动,停止和部署容器。
访问Shipyard GUI并查看Containers选项卡。这将列出您已添加到Shipyard的每个Docker主机上运行的所有容器。如果你没有做任何其他事情,这个标签应至少显示三个容器,其中两个正在运行:
让我们尝试部署一个新的Wordpress博客。使用官方Docker repo映像,我们需要部署MySQL和Wordpress容器。
单击+ Deploy按钮。下一个屏幕将允许我们配置要部署的容器。在下面指定的字段中输入信息。
mariadb
。(MariaDB是MySQL的开源分支。)mysql-test
。MYSQL_ROOT_PASSWORD=6f23b328e7
。service
。no
。现在单击Deploy。容器启动需要一段时间。您应该被重定向回容器列表,该列表现在应该有一个名为mysql-test
(或您使用的名称)的容器。
您刚刚使用Shipyard部署了第一个Docker容器!
现在我们将使用相同的过程来部署链接到MySQL容器的WordPress容器。再次单击+ Deploy按钮并填写以下内容:
wordpress
wordpress-test
mysql-test:mysql
service
no
状态。还有一件事要做:我们希望能够从任何地方访问这个WordPress容器的Web内容,因此我们必须公开其端口80
。为此,请单击标题Port旁边的加号。
选择TCP根据协议,离开IP空白处输入1234的端口和80的容器端口。
现在您可以单击“ 部署”。再一次,您将需要一段时间才能被重定向回容器列表。该列表现在还应显示一个名为wordpress-test
的容器。单击旁边的链接以查看更多详细信息。
在Ports下,您将看到WordPress容器的端口80
现在已发布到您的服务器端口1234
。Shipyard有助于直接将此列表设为可点击链接,您可以使用该链接转到已发布的地址。
单击此链接。这将带您进入WordPress安装向导。填写该页面上的字段后,您将能够登录到全新的WordPress博客,并将其视为网站。
您现在已成功使用Shipyard在Docker主机上部署实际应用程序!
您已在您的服务器上启动并运行Shipyard。您还应该能够使用Docker配置其他服务器并将它们连接到Shipyard实例以进行管理。您还学习了如何使用CLI和GUI连接到Shipyard实例,并学习了如何使用GUI在Docker主机上部署新容器。
想要了解更多关于使用Shipyard部署Wordpress的相关教程,请前往腾讯云+社区学习更多知识。
参考文献:《How To Deploy Wordpress with Shipyard on Ubuntu 14.04》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。