Docker - 运行 来自所有容器的命令

Docker - running commands from all containers

我正在使用 docker compose 为我的网站创建基本环境(目前仅在本地,所以我不关心安全问题)。目前我正在使用 3 个不同的容器

我显然可以登录到任何容器以执行 运行 命令。例如,我可以 ssh 到 php 容器来验证 PHP 版本或 运行 PHP 脚本,但问题是 - 是否可以有这样的配置,我可以 运行 来自所有容器的命令 运行 例如一个 SSH 容器?

例如,我想 运行 这样的命令:

php -v
nginx restart
mysql 

为所有服务登录同一个 SSH 后。

有可能吗?我知道有 exec 命令,所以我可以在容器的每个命令名称之前添加,但它不够灵活,无法使用,如果容器更多,它会越来越困难。

所以问题是 - 是否有可能,如果有,如何实现?

您的问题是:

有可能吗?

答案是:

这是由于您同时提供了两个限制。您的第一个限制是:

  1. 使用 SSH 而不是 Exec

绝对可以在每个容器中安装 SSH 守护程序 运行ning 并设置安全性,这样您就可以 运行 在例如容器中执行 ssh 命令。无密码模式

参见例如Passwordless SSH login

您的第二个限制是:

  1. 一个用于所有服务的通用 SSH

现在这将是棘手的部分。你必须:

  • 创建一个通用的 ssh 服务器,例如一个用于此目的的特殊容器或使用其中一个容器
  • 创建容器之间的通信
  • 确保 ssh 服务器知道哪个命令适用于哪个容器

总而言之,与简单的 bash 或 python 脚本相比,这将是如此复杂,后者可以使用 exec 命令执行相同的操作,在所有 "no" 中,恕我直言比试图解决 "might there be some tricky/fancy solution of doing this".

的学术问题更好的答案