如何用单条命令通过SSH向Docker VirtualBox虚拟机发送指令?
解决通过SSH向Docker VirtualBox虚拟机发送单条命令的问题
我懂你现在的需求:不想进入交互式控制台,而是直接从外部发送一条带脚本逻辑的命令到Docker VirtualBox虚拟机里执行。其实用docker-machine自带的SSH功能就能轻松搞定,步骤很清晰:
1. 先确认目标虚拟机信息
首先执行docker-machine ls命令查看所有可用的虚拟机,找到你要操作的那台的名称:
[root@localhost ~]# docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default * virtualbox Running tcp://192.168.99.100:2376 v20.10.21
从输出里记下NAME列的虚拟机名称,比如上面示例里的default。
2. 直接发送单条命令/脚本
用docker-machine ssh命令直接传递你要执行的指令,语法是:
docker-machine ssh <虚拟机名称> "<你的命令或脚本内容>"
给你几个实际场景的例子:
- 简单命令:比如查看虚拟机内的Docker版本
docker-machine ssh default "docker --version"
- 带逻辑的脚本:比如创建测试目录、写入内容并查看结果
docker-machine ssh default "mkdir -p /tmp/test && echo 'Hello from external' > /tmp/test/msg.txt && cat /tmp/test/msg.txt"
- 多行脚本:如果你的逻辑有多个步骤,直接换行写在引号里就行
docker-machine ssh default " echo 'Starting execution...' # 查看磁盘使用情况 df -h # 检查运行中的容器 docker ps echo 'Execution completed' "
小提示
- 如果命令里包含双引号,记得用反斜杠
\转义,或者外层用单引号包裹(但单引号内的变量不会被解析,按需选择) - 确保目标虚拟机处于
Running状态(从docker-machine ls的STATE列可确认),否则无法连接执行命令
内容的提问来源于stack exchange,提问作者CodeMed
相关产品推荐
相关产品推荐

