龙芯平台从用户界面来看软件与Docker交互状况

Docker的API允许大量的选项设置来与Docker进行交互,容器,以及从CLIs到桌面应用程序反映出来的镜像和基于web的管理工具。我是图形用户界面(GUI)的爱好者,而且我认为是时候调查当下GUIs与Docker交互的现状了。

我将使用WordPress Docker Compose 示例来测试每个选项,因为它有多个容器,设置它们之间的链接和网络,对于一个示例来说非常复杂。

Kitematic

Kitematic是Mac和Windows上安装Docker的默认GUI。我就不展示它太多细节了,因为你有可能已经很熟悉它了。当Kitematic首次出现,它是少数几个可用的GUI选项,而且当在15年10月Docker获得这个项目时,我对它的发展寄予了高度期望。悲哀的是,它自从收购后没怎么改变,并且已经永久的停留在测试阶段。

由于它是默认绑定的,所以是从简单的Docker应用开始使用的好方法,并且提供便利的手段在Docker Hub或者账户上搜索镜像。我已经发现一个学习Docker的好方法;你可以直观的创建容器,然后探究合适的配置选项,理解它们是什么并且做什么的。

Portainer

Portainer(Docker以前的UI)是一个开源网络应用,作为容器本身运行。可以用下面的代码安装并且启动:

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

默认情况下没有-v标记,但是你将用它来管理本地Docker容器。在创建密码和选择Docker实例管理后,它已经启动并且运行了。

Portainer让Docker API使用广泛,处理交互和监控,但是对于自动化,还公开了它自己的API和模板文件格式。Portainer覆盖了大部分你想交互的Docker区域,提供容器的创建、编辑、管理、监控和删除,也拥有增加、移除和观察镜像、网络和卷的能力,但是无法编辑它们。

下面是Portainer直观的示例应用,以及WordPress容器的概览页面。

概览页面非常有用,它包括基础的日志和监控性能,提供一个简单的故障排除概览。对于远程的集群,你也可以直接在浏览器中跳转到控制台。

Access Levels

Portainer增加了用户管理,可以让你设置团队成员的角色及用户权限。下面的截图显示了对一个特定用户和角色限制他对Portainer容器的访问。

Templates

应用程序模板在Dockerfile和Compose文件顶部增加了一个层级,并以定制的JSON格式编写文件,允许使用所有Portainer提供的标准和定制功能创建Docker应用。我不是百分之百确定,与标准的Docker选项相比它们会多有用,但在Portainer访问控制中,你会发现它们非常好用。

Dockstation

Dockstation是另一个“原生”(基于Electron)应用,看上去很像Kitematic,但是它们工作方法不同,“项目”透视图。你第一次创建项目,并且设置docker-compose.yml 文件或者用docker run 命令开始应用。

这个应用还处于早期的怪异界面(例如创建项目后,容器实际上没有自动启动),还有很多错别字,但是它有几个不明显的、很有用的额外功能。

Multiple Docker Clusters

如果你点击当前集群地址旁边的铅笔图标,你将发现你可以增加更多,让Dockstation在同一接口中管理多个集群。它同样提供搜索字段来寻找个别跨所有集群的镜像或容器。

Shipyard

在这篇文章中提到的其他基于web的GUI有类似的特性,Shipyard提供一个界面到你的容器、镜像和Docker实例。通过这个命令启动运行,操作多种操作系统:

curl -s https://shipyard-project.com/deploy | bash -s

启动样本应用,然后点击WordPress容器。你将看到关于容器的细节,加上停止、启动、删除和调试容器的按钮。

Shipyard没有很多功能,让它从其他基于web的GUI中脱颖而出。它最全面的突出特性是容器创建屏幕和添加私有资源库的能力。与其他基于web的选项比较,它也很容易启动和部署,在Docker for Mac上表现完美。

Docker Compose UI

具体来说,要在Docker中添加一个GUI,这个名称就说明了一切。它再次在它自己的容器中运行:

docker run

--name docker-compose-ui

-p 5000:5000

-w /opt/docker-compose-projects/

-v /var/run/docker.sock:/var/run/docker.sock

francescou/docker-compose-ui:1.6.0

Open your browser and you can create your own project from scratch or use one of the templates provided. To start the UI with a pre-existing docker-compose.yml file, pass in the directory containing your file or run it in the directory.

打开浏览器,从头开始建自己的项目,或者使用提供的模板中之一。通过已有的docker-compose.yml 文件开始UI,在包含文件的目录中传递或在目录中运行它。

docker run

--name docker-compose-ui

-v $(pwd):$(pwd)

-w $(pwd)

-p 5000:5000

-v /var/run/docker.sock:/var/run/docker.sock

francescou/docker-compose-ui:1.6.0

MicroBadger

不是专门用于管理容器,而是用户分析镜像,MicroBadger深入研究镜像文件来展示它们中的图层和命令,它们的依赖项,和对应用的影响。

例如,分析WordPress镜像:

你能看到最大的依赖是对于PHP,这不难理解,而且对此也无能为力。但有趣的是,我们可以看到每个命令都具有的累积效应,以及在哪里可以将几个字节去掉。可以增加识别到镜像资源库,以显示潜在用户对其项目的影响。

Rancher

到目前为止我所提到的工具更多的是为了开始使用Docker镜像和容器而设计的,Rancher是可以进一步使用Docker GUI,更适合于生产集群的一个工具。表明它集中于生产,Rancher是设计在Linux机器上工作的,因此要在本地测试,你需要安装到虚拟机上。

使用下面的docker run 命令启动Rancher容器:

sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable

也能在Mac电脑上运行指令,但你的步骤可能会有所不同。

Rancher提供的多于其他选项但也更为复杂。例如,Rancher支持Docker Compose但是要通过Rancher Compose扩展来增加健康检查、缩放和其他功能。通过搜索“WordPress”,我可以使用Rancher的“堆栈”功能重建示例应用程序。几分钟内,我获得一个由相同部分组成的活跃应用。整个界面都是导出选项,为Rancher堆栈创建一个合适的YAML文件。

一旦建立,Rancher提供与其他基于web的GUIs类似的特性,但是Rancher提供界面元素来添加额外特性。例如在容器页面上点击增减图标,改变WordPress实例的数量。普通资源容器申请扩展容器实例等等。你无法使用与另一个端口相同的端口,在一个Docker主机上运行多个容器。

如果你曾经忘记了堆栈的组件是如何相互关联的,那么Rancher提供了方便的图表来展示给你。

也许你已经猜到,Rancher是这个列表中的选项,它添加了最独特的功能。对许多人来说,这可能比你所需要的要多得多。我没有提到的其他功能包括主机洞察力、隐私管理、大量的堆栈目录和Docker机器驱动程序。

进一步编排

我故意把这篇关于Docker GUIs的文章结尾变得不太复杂。然而,我没有提到的是,使用Docker编排工具(如Kubernetes和Mesos)的GUIs。Rancher开始触及他们的领域,但他们更深入地部署、管理和协调Docker容器在大规模、复杂的应用程序中。

1.png 

猜你喜欢

转载自blog.csdn.net/weixin_40065369/article/details/85774106
今日推荐