Docker - 运行 来自所有容器的命令
Docker - running commands from all containers
我正在使用 docker compose 为我的网站创建基本环境(目前仅在本地,所以我不关心安全问题)。目前我正在使用 3 个不同的容器
- 对于 nginx
- 对于php
- 对于mysql
我显然可以登录到任何容器以执行 运行 命令。例如,我可以 ssh 到 php 容器来验证 PHP 版本或 运行 PHP 脚本,但问题是 - 是否可以有这样的配置,我可以 运行 来自所有容器的命令 运行 例如一个 SSH 容器?
例如,我想 运行 这样的命令:
php -v
nginx restart
mysql
为所有服务登录同一个 SSH 后。
有可能吗?我知道有 exec
命令,所以我可以在容器的每个命令名称之前添加,但它不够灵活,无法使用,如果容器更多,它会越来越困难。
所以问题是 - 是否有可能,如果有,如何实现?
您的问题是:
有可能吗?
答案是:
否
这是由于您同时提供了两个限制。您的第一个限制是:
- 使用 SSH 而不是 Exec
绝对可以在每个容器中安装 SSH 守护程序 运行ning 并设置安全性,这样您就可以 运行 在例如容器中执行 ssh 命令。无密码模式
参见例如Passwordless SSH login
您的第二个限制是:
- 一个用于所有服务的通用 SSH
现在这将是棘手的部分。你必须:
- 创建一个通用的 ssh 服务器,例如一个用于此目的的特殊容器或使用其中一个容器
- 创建容器之间的通信
- 确保 ssh 服务器知道哪个命令适用于哪个容器
总而言之,与简单的 bash 或 python 脚本相比,这将是如此复杂,后者可以使用 exec 命令执行相同的操作,在所有 "no" 中,恕我直言比试图解决 "might there be some tricky/fancy solution of doing this".
的学术问题更好的答案
我正在使用 docker compose 为我的网站创建基本环境(目前仅在本地,所以我不关心安全问题)。目前我正在使用 3 个不同的容器
- 对于 nginx
- 对于php
- 对于mysql
我显然可以登录到任何容器以执行 运行 命令。例如,我可以 ssh 到 php 容器来验证 PHP 版本或 运行 PHP 脚本,但问题是 - 是否可以有这样的配置,我可以 运行 来自所有容器的命令 运行 例如一个 SSH 容器?
例如,我想 运行 这样的命令:
php -v
nginx restart
mysql
为所有服务登录同一个 SSH 后。
有可能吗?我知道有 exec
命令,所以我可以在容器的每个命令名称之前添加,但它不够灵活,无法使用,如果容器更多,它会越来越困难。
所以问题是 - 是否有可能,如果有,如何实现?
您的问题是:
有可能吗?
答案是:
否
这是由于您同时提供了两个限制。您的第一个限制是:
- 使用 SSH 而不是 Exec
绝对可以在每个容器中安装 SSH 守护程序 运行ning 并设置安全性,这样您就可以 运行 在例如容器中执行 ssh 命令。无密码模式
参见例如Passwordless SSH login
您的第二个限制是:
- 一个用于所有服务的通用 SSH
现在这将是棘手的部分。你必须:
- 创建一个通用的 ssh 服务器,例如一个用于此目的的特殊容器或使用其中一个容器
- 创建容器之间的通信
- 确保 ssh 服务器知道哪个命令适用于哪个容器
总而言之,与简单的 bash 或 python 脚本相比,这将是如此复杂,后者可以使用 exec 命令执行相同的操作,在所有 "no" 中,恕我直言比试图解决 "might there be some tricky/fancy solution of doing this".
的学术问题更好的答案