我正在运行 Ubuntu 20.04,并使用 Nvidia Riva 自动语音识别应用程序来检测语音命令。我想将它们引导/管道到另一个应用程序中以执行控制操作。我遇到的问题是 ASR 应用程序部署在 Docker 容器中,而控制应用程序则不是。
所以。我想知道在 docker 容器外部运行的应用程序如何与在容器内部运行的应用程序交互。
我考虑过在同一个容器中运行所有内容,但是这是不切实际的,因为我们的产品已经成熟,有很多相互交互的服务,并且还有与 Linux 内核驱动程序的接口。
预先感谢您的任何帮助。
Docker 容器和主机之间有两个非常明显的接口,您可能应该进一步探索:
已发布的端口
运行容器时的一种选择是将端口从容器映射到主机。这可用于 Web 界面等,还可通过 TCP 或 UDP 端口映射交换其他数据。
要在容器和主机之间映射端口,请使用
-p
具有以下语法的选项:示例:您想要将
80
容器中的 TCP 端口映射到8080
主机上的端口(这/tcp
是可选的,因为它是默认值)。绑定坐骑
另一种选择是使用绑定挂载在主机文件系统和容器之间映射文件。这些文件是实时映射的,因此容器中发生的任何更新都应立即反映在文件系统中。
要在容器和主机之间映射文件,请使用
-v
具有以下语法的选项:/data
示例:您想要将容器中的路径映射到home/user/data
主机上的路径。请注意,还可以对单个文件进行附加映射: