Docker 如何使用pod本地环境变量在pod上执行kubectl命令?

Docker 如何使用pod本地环境变量在pod上执行kubectl命令?,docker,kubectl,Docker,Kubectl,我试图运行需要使用特定于容器($JAVA_HOME)的环境变量的命令,但在将命令发送到pod容器之前,该变量似乎已在本地shell上展开 kubectl exec my-pod "echo ${JAVA_HOME}" 产生: Use 'kubectl describe pod/my-pod -n default' to see all of the containers in this pod. OCI runtime exec failed: exec failed: container_l

我试图运行需要使用特定于容器($JAVA_HOME)的环境变量的命令,但在将命令发送到pod容器之前,该变量似乎已在本地shell上展开

kubectl exec my-pod "echo ${JAVA_HOME}"
产生:

Use 'kubectl describe pod/my-pod -n default' to see all of the containers in this pod.
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"echo \": executable file not found in $PATH": unknown
command terminated with exit code 126
我很幸运地尝试了几种语法(例如bash-c)。如何转义变量以便在目标容器上对其求值?

尝试以下操作:

kubectl exec my-pod -- bash -c 'echo $JAVA_HOME'
试试这个:

kubectl exec my-pod -- bash -c 'echo $JAVA_HOME'

可以将env变量添加为ConfigMap的一部分有什么区别?env变量已经设置好了为什么要这样做?您可以将env变量添加为ConfigMap的一部分有什么区别?env变量已经设置好了为什么要这样做?这可以在第行添加\r最好使用“printf${JAVA\u HOME}”这可以在第行添加\r最好使用“printf${JAVA\u HOME}”