从远程计算机执行docker命令

时间:2016-06-06 14:12:15

标签: java docker remote-access

我需要从远程计算机执行一些docker命令。

我正在使用java ssh库连接到我需要执行docker命令的机器,然后尝试执行命令。

实际的docker命令是:

docker exec -it idaas_webtier_1 /bin/bash
_tadm1="${OTD_HOME}/bin/tadm"
_tadm2="--user=${OTD_ADMIN_USER} --password-file=${OTD_ADMIN_PWD} --host=${HOSTNAME} --port=${OTD_ADMIN_PORT} --no-prompt --accept-cert"
$_tadm1 pull-config $_tadm2 --config=${OTD_CONFIG_NAME} ${HOSTNAME}
$_tadm1 create-origin-server-pool $_tadm2 --type=http --config=${OTD_CONFIG_NAME} --origin-server=server.us.oracle.com:7001 qaverify-server-pool
$_tadm1 set-health-check-prop $_tadm2 --config=${OTD_CONFIG_NAME} --origin-server-pool=qaverify-server-pool request-method=GET request-uri=/
$_tadm1  create-route $_tadm2 --config=${OTD_CONFIG_NAME} --vs=${OTD_CONFIG_NAME} --origin-server-pool=qaverify-server-pool --condition="\$uri=~\"/testApp.*\"" qaverify-route
$_tadm1 deploy-config $_tadm2 --restart ${OTD_CONFIG_NAME}
exit

远程尝试时,我添加了变量的实际值并将其放入shell脚本并执行sh脚本,但它只执行第一行 脚本如下

docker exec -it idaas_webtier_1 /bin/bash
_tadm1=/scratch/oracle/otd/bin/tadm
_tadm2="--user=admin --password-file=/scratch/oracle/otd/password-file --host=admin-server.cloudgate.dev.oraclecloud.local --port=8989 --no-prompt --accept-cert"
$_tadm1 pull-config $_tadm2 --config=idcs-config admin-server.cloudgate.dev.oraclecloud.local
$_tadm1 create-origin-server-pool $_tadm2 --type=http --config=idcs-config --origin-server=adc6260266.us.oracle.com:7001 qaverify-server-pool
$_tadm1 set-health-check-prop $_tadm2 --config=idcs-config --origin-server-pool=qaverify-server-pool request-method=GET request-uri=/
$_tadm1  create-route $_tadm2 --config=idcs-config --vs=idcs-config --origin-server-pool=qaverify-server-pool --condition="\$uri=~\"/testApp.*\"" qaverify-route
$_tadm1 deploy-config $_tadm2 --restart idcs-config
exit

它只执行第一行,而不执行其余行。

如果我将'|'添加到命令中:

docker exec -it idaas_webtier_1 /bin/bash | _tadm1=/scratch/oracle/otd/bin/tadm

它说:

  

_tadm1 = / scratch / oracle / otd / bin / tadm:找不到命令。

任何关于此的指针都会有所帮助。

1 个答案:

答案 0 :(得分:0)

U可以编写shell脚本并直接运行脚本而不是访问bash终端。 例如。, docker exec -it idaas_webtier_1 tadm.sh