来自远程计算机的 SSH 的 Docker 命令



我正在尝试通过SSH从远程机器将mysql命令运行到docker容器中。特别是命令是这样的:

ssh user@servername /usr/bin/sudo /usr/bin/docker exec CONTAINER '/usr/bin/mysql --user=USER --password=PASSWORD -e "show databases;"'

我收到此响应:错误 1049 (42000(:未知数据库"数据库;"'

相同的命令 (/usr/bin/sudo/usr/bin/docker exec CONTAINER/usr/bin/mysql --user=USER --password=PASSWORD -e "show databases;"(在运行容器的机器上启动,工作!

有人可以帮助我吗?谢谢

使用此命令

ssh user@servername 'sudo docker exec CONTAINER mysql --user=USER --password=PASSWORD -e "show databases;"'

我们必须在引号(''(中传递完整的命令(在远程 shell 上执行(。

我使用/usr/bin/mysqlshow instad of/usr/bin/mysql 解决了这个问题。现在它正确返回数据库列表。我发布了用于远程保存 mysql docker 容器数据库列表的整个命令:

LIST_DB=($(ssh -q USER@SERVERNAME /usr/bin/sudo /usr/bin/docker exec CONTAINER "/usr/bin/mysqlshow -u USER -pPASSWORD" 2>&1 | sed 's/|//g' | sed 's/-//g' | sed 's/+//g' |sed -e 's/^[[:blank:]]*//g' | grep -v "Using a password" | grep -Ev "_schema|tmp|innodb|sys|Databases"))

最新更新