云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

文件存储_cdn变革_三重好礼

小七 141 0

感谢您在本系列第2部分之后在社区以及LinkedIn和Twitter上提供的所有反馈。请继续!

在我们阅读今天的短文之前,快速回顾一下:

容器是一个图像的运行实例(现在简化一下);我们可以从已经运行的容器中执行不同的命令…

…就像一些客户机命令一样。

但是如果我想执行一个客户机而不使用服务器运行整个容器,就像我们到目前为止所做的从运行OrientDB服务器的容器中执行OrientDB的控制台客户机。

示例1:MQTT订户

你们中的一些人可能还记得我在过去做过一些关于物联网的工作,甚至在今天使用物联网作为SAP数据中心代码阻塞的用例。在我们使用的技术中,有一个轻量级协议MQTT.

有相当多的公共服务器使用MQTT代理。其中一个-在三个不同的MQTT主题中发布了源源不断的BBC闭路字幕。

在我们的练习中,我们希望从一个主题BBC/subtitles/BBC\u two\u england接收一个字幕流,但不直接在我们的计算机上安装任何客户端软件。相反,淘客插件,我们将使用eclipse mosquitto Docker repository.

它的最新映像包含mosquitto\u sub—一个简单的MQTT客户端,它将订阅主题并打印它接收到的消息。

因此,让我们运行以下命令…

…并了解结果。

我们请求Docker使用(最新的)运行一个新容器默认情况下)eclipse mosquitto的映像,并执行mosquitto\u子客户机以连接到MQTT代理test.mosquitto.org网站并输出在bbc/subtitles/bbcŠtwoŠu england topic的子主题上收到的消息(因此在结尾是多级别通配符)。

红色箭头中的输出来自Docker,而黄色中的输出是在BBC2直播时来自封闭字幕流的内容(这是"仙女"的历史?我不得不专注于写这篇文章,而不是跟随灯光的故事,所以我按下了Ctrl+C。命令执行停止,Docker不仅停止了容器,云服务器的,还删除了它,因为run命令中的--rm选项。

示例2:本地命令的插入式替换

我不需要在笔记本电脑上安装MQTT客户机软件,检查它的任何依赖项,或者在我不再需要它时考虑如何删除它!

此外,我还可以创建别名(我现在正在Docker Desktop上使用MacOS)在笔记本电脑上创建这些命令的插入式替换。

现在在一个终端窗口中,让我运行mosquitto\u sub,就像它是我操作系统中可用的客户机一样…

…而在另一个终端会话中,让我运行连接到同一MQTT的mosquitto\u pub代理并从我的键盘将消息发布到同一主题sygyzmundovych(选项-l)。

在第一个窗口中接收和显示的消息与在第二个窗口中键入和发布的消息相同。

如果我们检查正在运行的容器,我们会看到其中两个基于eclipse mosquitto running的容器。

尝试停止-对mosquitto和sub使用Ctrl+CCtrl+D(这是EOF,即输入的结尾),然后再次运行这些mosquitto pub和sub命令,以查看docker ps输出中的结果变化。

示例3:连接到容器的网络

我假设您运行了容器myorientdb01(来自以前的文章),例如,通过docker start myorientdb01重新启动它,如果它同时被停止,

让我们用docker exec myorientdb01 hostname检查它的主机名。我当前运行的OrientDB服务器的容器的主机名是99fe8d28d3c3。

通常容器非常轻量级,并且只包含运行容器所需的最少软件集。即使是许多通常的命令,如ifconfig,淘客,你认为理所当然的是丢失。这会缩小图像的大小,但是如果事情失控,也会使故障排除变得更加困难。

我们将使用另一种方法,而不是在running OrientDB容器内安装此和其他网络实用程序:一个带有所需网络工具的一次性容器连接到running OrientDB容器的网络。

有一个描述为"网络"的图像公共Docker Hub注册表中的"瑞士陆军集装箱"故障排除:https://hub.docker.com/r/nicolaka/netshoot。该图像有一套强大的工具,可用于解决Docker网络问题。

实际上,该容器非常有用,与真正的85工具巨型瑞士军刀相比

让我们使用该图像运行ifconfig…

…它将从Docker注册表中提取图像,创建一次性容器(即在执行ifconfig命令后由于--rm选项而自动删除)。

该一次性容器的IP地址为172.17.0.3,但完成的容器被删除。很明显,深度学习数据集,图像本身保留在本地,并且在下一次运行容器时不会被拉出。

现在,让我们找到运行OrientDB服务器的容器的IP地址…

…通过在run命令中添加--net container:,大数据和数据分析区别