介绍
Shipyard是Docker的服务器的管理工具。
Docker是用于容器尖端的软件。 Shipyard允许您查看每个服务器正在运行哪些容器,以启动或停止现有容器或创建新容器。 在服务器上设置Shipyard之后,您可以使用图形界面,命令行界面或API访问它。Shipyard缺乏一些其他Docker的先进功能
流程控制工具 ,但它是非常简单的设置,可自由使用,你可以管理和举办自己的。 本教程介绍如何安装Shipyard,将其连接到Docker服务器,并使用它来创建和启动新的容器。到最后,你应该在你的服务器上运行Shipyard来管理你的Docker主机。
先决条件
要遵循本教程,您需要:
- 一个Ubuntu 14.04 Droplet与Docker 1.5.0镜像。
你可以找到Droplet创建页面上Docker1.5.0图像选项,下
选择图片
应用程序选项卡。 您也可以在现有的Droplet通过以下安装Docker
本教程 。
注 :
docker.io
从Ubuntu的14.04的标准库包是很老的(版本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
现在,我们可以使用端口访问我们的运行实例Shipyard
8080
。
第2步 - 进入造Shipyard
现在Shipyard正在运行,我们需要访问它。造Shipyard可以通过GUI,命令行界面(CLI)或API访问。我们将从访问CLI开始。
使用CLI访问造Shipyard
我们可以通过运行另一个容器来访问Shipyard CLI。
docker run -ti --rm shipyard/shipyard-cli
该
-ti
标志确保容器是互动的,而
--rm
标志使得一次性容器,这意味着它将一旦我们用它做被自动删除。 您现在应该看到Shipyard命令行提示符,它看起来像这样:
shipyard cli>
为了让您可以输入可用的命令列表
shipyard help
。 此命令提示符尚未连接到我们在第1步中设置的Shipyard实例,所以让我们先连接它:
shipyard login
它会提示您输入网址。输入
http:// your_server_ip :8080
。 接下来,系统将提示您输入用户名和密码。 默认设置用户名和密码; 输入
admin
的用户名和
shipyard
密码。然后,您将返回到Shipyard提示。 现在你登录到您的Shipyard实例作为
管理员 。留下默认密码是一个巨大的安全风险,所以让我们改变它。
shipyard change-password
您需要选择并确认新密码。请确保您的新密码是安全的,并且您可以记住它。您现在可以按
CTRL + D退出ShipyardCLI。 因为Shipyard命令行必须每次连接到您的Shipyard实例,所以您可以在任何能够运行Docker容器的系统上运行Shipyard命令行,并将其连接到您的服务器上运行的Shipyard实例。
使用GUI访问造Shipyard
接下来,我们来看看Shipyard的图形界面。要访问它,打开
http:// your_server_ip :8080
在浏览器中。 这应该显示登录屏幕。 使用用户名
admin
和您所选择的新密码。 一旦你登录后,Shipyard将显示
引擎选项卡,并提醒你,有你的Shipyard没有集群还引擎。
发动机能够运转容器Docker主机。在这里,我们将添加您要用Shipyard管理的每个Docker服务器。
第3步 - 添加引擎
我们刚刚部署的Droplet Shipyard也是一个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。访问您的ShipyardGUI和进入
引擎选项卡。 点击
+添加按钮。它将如下所示:
添加以下字段。
- 名称 :使用一个名称,让您识别引擎作为当前Droplet,喜欢你Droplet的主机名。
- 标签 :您添加到您的发动机上的标签可以让你控制哪些容器被允许在其上运行。根据您要使用此Droplet的,您可以使用标签,如生产或测试。
- 地址 :使用我们刚刚打开的端口Docker:
http:// your_server_ip :4243
现在,单击底部的
添加按钮。 Shipyard现在将连接到您的Docker主机,验证连接,并将其添加为引擎。 一旦做到这一点,你就会被带回
引擎选项卡。引擎将首先列为离线。等待一两秒钟并刷新页面,您现在应该可以看到您的Docker主机的详细信息。
第4步 - 使用Shipyard部署容器
现在我们将Docker主机添加到Shipyard作为引擎,我们可以使用Shipyard启动,停止和部署容器。 进入ShipyardGUI和看一看
Containers选项卡。这将列出在您添加到Shipyard的每个Docker主机上运行的所有容器。如果您没有做任何其他事情,此选项卡应至少显示三个容器,其中两个正在运行:
让我们尝试部署一个新的Wordpress博客。使用官方Docker repo镜像,我们需要部署一个MySQL和Wordpress容器。 点击
+ Deploy按钮。下一个屏幕将允许我们配置容器进行部署。在下面指定的字段中输入信息。
- 图片 :输入
mariadb
。 (MariaDB是MySQL的开源代码。)
- 容器名称 :您可以使用任何你喜欢的,如
mysql-test
。
- 环境 :图片说明会告诉你,你可以使用环境变量。 在这种情况下,使用
MYSQL_ROOT_PASSWORD=6f23b328e7
。
- 类型 :这决定了容器应在多个引擎的部署。 在这种情况下,使用
service
。
- 标签 :这将被用于匹配容器发动机。只需选中您分配给引擎的其中一个标签即可。
- 重新启动策略 :确定某容器应错误或Docker重启后自动重新启动。 在这种情况下,离开它
no
。
现在点击
部署 。 这将需要一段时间为容器启动。 你应该被重定向回容器名单,现在应该有一个名为container
mysql-test
(或任何名字,你使用)了。 你刚刚使用Shipyard部署了第一个Docker容器! 现在我们将使用相同的过程部署一个WordPress容器,链接到我们的MySQL容器。再次单击
+部署按钮,然后在下面填写:
- 图片 :
wordpress
- 名称 :
wordpress-test
- 友情链接 :
mysql-test :mysql
- 类型 :
service
- 标签 :检查所有你已经使用了您引擎的几种。
- 重新启动策略 :将此上
no
。
还有一件事要做:我们希望能够从任何地方达到这个WordPress容器的网页内容,所以我们要揭露它的端口
80
。 要做到这一点,点击加号标题
端口旁边。
选择
TCP
协议下
,IP留空白,进入
1234
端口和
80
货柜码头 。 现在,您可以单击
部署 。 再次需要一段时间,您才会被重定向回容器列表。 列表现在应该也显示一个名为container
wordpress-test
。点击其旁边的链接可查看更多详情。
在
港口 ,你会看到WordPress的容器港口
80
现已发布到你的服务器的端口
1234
。 Shipyard有助于直接使此列表成为可点击的链接,您可以使用它来转到已发布的地址。 点击此链接。这将带你到WordPress安装向导。一旦您填写该页面上的字段,您就可以登录到您的全新WordPress博客,并将其视为网站。
结论
您现在已成功使用Shipyard在Docker主机上部署实际应用程序! 您已在您的服务器上启动并运行Shipyard。您还应该能够使用Docker配置其他服务器,并将它们连接到您的Shipyard实例进行管理。您还学习了如何使用CLI和GUI连接到Shipyard实例,并了解了如何使用GUI在Docker主机上部署新容器。 现在,你可以自由尝试任何可用的成千上万的Web应用程序的
泊坞登记 。 例如,您可以部署Nginx的容器主办一个更可读的URL新的WordPress博客中描述的
本教程 。