我正在使用docker compose为我的网站创建基本环境(目前只在本地,所以我不关心安全问题)。目前我正在使用3个不同的容器“
我显然可以登录任何容器来运行命令。例如,我可以ssh到php容器来验证PHP版本或运行PHP脚本,但问题是 - 是否可以使用这样的配置,我可以从运行的所有容器运行命令,例如一个SSH容器?
例如,我想运行这样的命令:
php -v
nginx restart
mysql
在登录所有服务的一个公共SSH之后。
有可能吗?我知道有exec
命令,所以我可以在容器的每个命令名之前添加,但它不够灵活,不能使用,如果有更多的容器,它会越来越难。
所以问题是 - 它是否可能,如果是的话,它怎么可能实现呢?
答案 0 :(得分:1)
你的问题是:
可以吗?
答案是:
否
这是由于您组合使用的两个限制。你的第一个限制是:
绝对可以在每个容器中运行SSH守护程序并设置安全性,以便您可以在例如ssh命令中运行ssh命令。无密码模式
你的第二个限制是:
现在这将是棘手的部分。你必须:
总而言之,与简单的bash或python脚本相比,这将是如此复杂,它可以对所有" no"中的exec命令执行相同的操作。恕我直言是一个比试图解决学术问题更好的答案;可能会有一些棘手/奇特的解决方案来做到这一点"。