Docker – 从所有容器运行命令
我使用docker撰写为我的网站创build基本的环境(目前只在本地,所以我不在乎安全问题)。 目前我正在使用3个不同的容器“
- 为nginx
- 为PHP
- 为MySQL
我显然可以login到任何容器来运行命令。 例如,我可以ssh到PHP容器来validationPHP版本或运行PHP脚本,但问题是 – 是否有可能有这样的configuration,我可以运行命令从所有容器运行例如一个SSH容器?
例如,我想运行这样的命令:
php -v nginx restart mysql
在为所有服务login到一个普通的SSH之后。
有没有可能? 我知道有exec
命令,所以我可以在容器的每个命令名之前添加它,但是它不够灵活以至于在使用更多的容器的情况下会越来越困难。
所以问题是 – 是否有可能,如果是的话,怎么可能实现呢?
你的问题是:
有没有可能?
答案是:
没有
这是由于你们两个组合的限制。 你的第一个限制是:
- 使用SSH而不是Exec
在每个容器中运行一个SSH守护程序是非常有可能的,并设置安全性,以便可以在无密码模式下运行ssh命令
请参阅无密码SSHlogin
你的第二个限制是:
- 一个通用的SSH服务
这现在是棘手的部分。 你必须:
- 创build一个共同的SSH服务器在例如一个特殊的容器为此目的或使用其中一个容器
- 创build与容器之间或之间的通信
- 确保ssh服务器知道哪个容器是哪个命令
总而言之,与一个简单的bash或python脚本相比,这个脚本可以执行exec命令,所有的“no”都是更好的答案,而不是试图解决“可能会有一些棘手的/奇特的解决scheme“。