Python 如何在链接的docker容器上运行命令?

Python 如何在链接的docker容器上运行命令?,python,ruby,docker,command-line,docker-compose,Python,Ruby,Docker,Command Line,Docker Compose,我在使用docker compose时使用了: 在docker容器中运行的现有(python)应用程序 另一个(ruby)命令行应用程序运行在docker容器中 如何“连接”这两个容器,以便python容器可以调用ruby容器中的命令行应用程序?(并通过stdin/stdout传递参数)选项可用,但不是很好。如果您使用的是最新版本的Docker Compose,那么这两个容器将位于同一Docker网络中,并且可以通信,因此您可以在目标容器中安装sshd,并从源容器进行ssh调用 或者,与源容器一

我在使用docker compose时使用了:

  • 在docker容器中运行的现有(python)应用程序
  • 另一个(ruby)命令行应用程序运行在docker容器中

  • 如何“连接”这两个容器,以便python容器可以调用ruby容器中的命令行应用程序?(并通过stdin/stdout传递参数)

    选项可用,但不是很好。如果您使用的是最新版本的Docker Compose,那么这两个容器将位于同一Docker网络中,并且可以通信,因此您可以在目标容器中安装
    sshd
    ,并从源容器进行
    ssh
    调用

    或者,与源容器一起使用,以便您可以在源容器内运行
    docker exec
    ,并在目标容器上执行命令


    不过,这是低级通信,如果更改应用程序是可行的,将其提升为服务调用或消息传递会更好。

    也许你可以创建一个卷来共享Ruby命令行应用程序,并将该卷装载到Python容器中。我可以共享一个卷,但如何在另一个容器中运行该命令?@gingerlime,这两个容器当前是否正在运行,并且您希望在其中一个容器中运行a命令?可能类似于
    docker exec
    。或者
    docker exec-it
    如果您想从容器中获取终端以查看发生了什么,您应该使用注释中的详细信息更新您的问题,并添加任何其他重要的详细信息。可能的答案会更好。我希望避免SSH,因为它被认为是糟糕的做法。我将在Docker中查看Docker,但我使用的是预构建的图像,因此不确定如何将其“转换”为使用DiD。。。确实不太好。所有关于在一个容器中只运行一件东西的最佳实践的讨论,我会认为这种用例将以某种方式变得直截了当。。。