我使用docker撰寫爲我的網站創建基本環境(此刻只在本地,因此我不在乎安全問題)。目前我使用3個不同的容器」Docker - 從所有容器運行命令
- 爲nginx的
- 爲PHP
- 爲MySQL
我可以明顯地登錄到任何容器來運行的命令。比如我可以ssh到PHP容器來驗證PHP版本或運行PHP腳本,但問題是 - 是否有可能具有這樣的配置,以便我可以從運行例如一個SSH容器的所有容器運行命令?
例如,我想運行如下命令:
php -v
nginx restart
mysql
在登錄到所有服務的一個公共SSH後。
有沒有可能?我知道有exec
命令,所以我可以在容器的每個命令名之前添加它,但它不夠靈活以至於無法使用,並且在更多容器的情況下會越來越困難。
所以問題是 - 有沒有可能,如果是的話,怎麼可能實現?
一般來說,你不應該在你的容器中運行'sshd'; 'docker exec'是一個更好的主意,因爲它不需要在每個容器中運行另一個服務。 – larsks
@larsks理論上是真的,但是例如調試呢?我需要SSH來在我的IDE中進行調試,沒有問題。我剛剛用SSH建立了另一個容器,我可以通過SSH進行SSH訪問,但我不知道是否有可能以某種方式從所有其他容器運行命令。還有什麼情況下,如果我運行另一個容器吞噬例如?爲了運行gulp,我需要將'docker exec'運行到一個容器中,對於'php'我需要將'docker exec'運行到另一個容器中。 –
爲什麼你需要SSH才能在IDE中進行調試?你能更詳細地描述你的用例嗎?要回答您的問題的第一部分,您可以使用Makefile來自動執行常見任務。 –