Docker Shipyard对于喜欢Docker Swarm的人来说是一个方便的工具,但希望它能做得更多。虽然Swarm通过CLI专注于容器编排,但Docker Shipyard除了容器本身之外还允许您管理应用程序映像和容器注册表,从而进一步发挥作用。此外,除了CLI之外,Shipyard还提供基于Web的图形前端和丰富的API。
有兴趣潜入Docker造船厂吗?继续阅读有关为简单Docker容器集群安装和配置Shipyard的说明。
第1步:创建数据容器
正如您所料,Shipyard需要存储一些数据才能监控您的集群。因此,在启动Shipyard本身之前,您需要创建两个Docker容器以用于数据目的。第一个容器将用作数据容器卷,第二个容器将用作数据库服务器。
Shipyard使用RethinkDB,因此您将基于shipyard / rethinkdb映像创建两个数据容器。
要启动这两个容器,首先使用以下命令创建数据卷容器:
docker create --name shipyard-rethinkdb-data shipyard/rethinkdb
接下来,创建一个数据库服务器并将其链接到刚刚创建的数据卷容器:
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
第2步:启动造船厂
现在您可以让Shipyard存储其数据,您可以继续创建一个Shipyard容器,侦听端口8080:
docker run -it -p 8080:8080 -d --restart=always --name shipyard --link shipyard-rethinkdb:rethinkdb shipyard/shipyard
恭喜!造船厂现已启动并运行。
第3步:使用Docker Shipyard
但是,据推测,您实际上想要使用Shipyard,而不仅仅是让它在您的集群上运行。您可以通过不同方式访问它。正如我所提到的,Shipyard的一个好处是可以通过CLI,API或Web界面访问它。
每个人都喜欢GUI(好吧,也许不是,但在这种情况下,获取Web UI可能是您首先想要使用Shipyard的一大部分原因),所以让我们从Web界面开始。要访问它,只需将浏览器指向http:// server_ip:8080。默认登录名为admin,默认密码为shipyard。(是的,我知道。至少它不是“密码”。)
更改密码
如果您在生产中使用Shipyard并且您喜欢隐私,则可能需要更改默认凭据。要做到这一点,您需要CLI,这需要启动一个单独的容器。所以激发它:
docker run -ti --rm shipyard/shipyard-cli
我们使用-rm标志启动了这个容器,因为我们希望Docker在使用它时将其关闭。
启动此容器后,它将打开Shipyard CLI提示符。要更改默认密码,请键入:
shipyard login
它将要求一个URL,这是Shipyard正在监听的IP地址和端口(在我们的例子中,它是http:// server_ip:8080)。然后会要求您输入用户名和密码,这些用户名和密码仍然是管理员和造船厂。
登录后,运行此命令以更改密码:
shipyard change-password
Control-D将使您离开Shipyard CLI。
快速造船厂部署
您现在知道如何以艰难的方式安装Shipyard。但作为阅读这篇文章的奖励,我会指出Docker还提供了一个用于部署Shipyard的自动脚本。在已设置集群的情况下,您可以使用以下命令获取并执行脚本:
curl -sSL https://shipyard-project.com/deploy | bash -s
此工具提供了一些基本配置选项,这些选项在此处记录。但是如果你想自定义更多项目,比如端口号,你必须按照前面描述的手动方式做事。
船厂API基础知识
除了Web UI之外,Shipyard的API使其成为容器监控和管理的真正有用工具。所以我不能不提及它就结束这篇文章。
此处记录的Shipyard API可用于构建各种自定义Web应用程序。此外,Shipyard支持Docker Remote API来管理远程主机上的容器,因此您可以在构建应用程序时将后一种API与Shipyard的本机API相结合。
来源:https://www.sumologic.com/blog/code/managing-containers-docker-shipyard/