【问题标题】:connect 2 containers, call python container and execute script.py from golang container连接2个容器,调用python容器并从golang容器执行script.py
【发布时间】:2021-11-09 01:32:19
【问题描述】:

我正在使用两个 docker 容器来开发一个 Web 应用程序。在我的 golang docker 容器中,我有我的 Web 服务器,在提交表单后,我想处理我的 Python 容器中的输入。我的第一个想法是使用 golang:

exec.Command('python3', 'script.py', 'args')

但我不知道如何调用 Python 容器,比如使用它的 bash 终端而不是 golang 终端。有什么想法吗?

【问题讨论】:

  • python 的bash terminal 是什么意思?你的意思是当你使用 bash 中的python 程序时打开的命令行界面没有参数?
  • 在 docker 容器中,您有一个带有自己终端 (bash) 的 Linux 系统。因此,要在我的容器中执行脚本,我使用:python3 script.py arg1 arg 2
  • 一个Docker容器通常运行一个进程;它通常没有终端,并且图像可能根本不包含bash 甚至是外壳。您可能会考虑使用 Docker Compose 之类的工具来启动两个单独的容器(Go 和 Python 应用程序各一个)并在它们之间发出 HTTP 请求。

标签: python docker go docker-compose docker-networking


【解决方案1】:

本质上,docker 容器是隔离的,您不能直接在另一个容器中执行代码。 在微服务理念中,你最好暴露和API在python容器中,并从go容器中调用这个API。

另一方面,从主机,您可以使用docker exec <command>在您的python容器内执行one shot command

【讨论】:

  • 非常感谢
猜你喜欢
  • 2020-02-25
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-26
相关资源
最近更新 更多