Oracle 向正在运行的docker发送命令

Oracle 向正在运行的docker发送命令,oracle,bash,docker,Oracle,Bash,Docker,我正在尝试在正在运行的服务器中启动oracle lsnrctl 以下是我的命令(从主机服务器运行): 输出是一个无限循环: init\u演示:等待TNS侦听器启动 当我尝试(从主机服务器)运行时: docker exec-it tr db bash-c'lsnrctl start' 我得到: bash:lsnrctl:command未找到 但是,在登录到docker服务器之后,我能够运行该命令,并获得预期的结果 bash命令有什么问题 稍后添加: 这是一个路径问题。但是,我对整个命令仍然有一个

我正在尝试在正在运行的服务器中启动oracle lsnrctl

以下是我的命令(从主机服务器运行):

输出是一个无限循环:

init\u演示:等待TNS侦听器启动

当我尝试(从主机服务器)运行时:

docker exec-it tr db bash-c'lsnrctl start'

我得到:

bash:lsnrctl:command未找到

但是,在登录到docker服务器之后,我能够运行该命令,并获得预期的结果

bash命令有什么问题


稍后添加: 这是一个路径问题。但是,我对整个命令仍然有一个问题。以下命令正在工作:

docker exec-it my_docker bash-c“/u01/app/oracle/product/11.2.0/xe/bin/lsnrctl start”| grep成功

但是,当我运行以下命令时: 直到[!-z
docker exec-it my_docker bash-c”/u01/app/oracle/product/11.2.0/xe/bin/lsnrctl start“| grep成功
”;执行echo“初始化演示:等待TNS侦听器启动”;睡眠0.1;完成

我得到:
bash:[:missing`]

胡乱猜测:当您以交互方式登录docker服务器时,会设置一些使用
docker exec
时未设置的环境变量(例如
ORACLE\u HOME
/
路径)。查看docker文件可能会有所帮助,您是否有各种
ENV xxx yyy
来定义所有Oracle内容?我发现了这个问题。但是,我对整个命令仍然有一个问题。我编辑了我原来的帖子。您能看一下吗?通过在Dockerfile中放入类似于
ENV myalias my_long\u oracle_命令的内容,并再次构建容器,您能在环境变量中拥有别名吗?然后,您的命令应该是sort并且您的环境变量可用。请尝试
直到[!-z docker exec-it my_docker bash-c”/u01/app/oracle/product/11.2.0/xe/bin/lsnrctl start | grep成功”];执行echo“初始化演示:等待TNS侦听器启动”;睡眠0.1;完成
无论如何,结束“应该在您给
docker exec的命令末尾
until [ ! -z `docker exec -it my_docker bash -c "lsnrctl start" | grep successfully`]; do echo "init_demo: waiting for TNS listener to start";sleep 0.1;done