&引用;docker run“;用于在容器内计算bash$变量的命令

&引用;docker run“;用于在容器内计算bash$变量的命令,bash,docker,environment-variables,containers,Bash,Docker,Environment Variables,Containers,如何使用docker run,在容器中计算bash变量,在docker容器中运行命令 例如: 如何使其输出Hello busybox? 为了防止从外壳进行替换,需要使用单引号,而不是双引号 为了确保有一个内部外壳可以进行替换(echo本身没有任何这样的功能!),我们需要显式调用sh-c;否则,Docker将直接在容器内调用execlp(“echo”、“echo”、“$SOMEONE”、NUL),而实际上并不进行任何替换 因此: $ SOMEONE=host $ docker run --en

如何使用
docker run
,在容器中计算bash变量,在docker容器中运行命令

例如:

如何使其输出
Hello busybox

  • 为了防止从外壳进行替换,需要使用单引号,而不是双引号

  • 为了确保有一个内部外壳可以进行替换(
    echo
    本身没有任何这样的功能!),我们需要显式调用
    sh-c
    ;否则,Docker将直接在容器内调用
    execlp(“echo”、“echo”、“$SOMEONE”、NUL)
    ,而实际上并不进行任何替换


因此:

$ SOMEONE=host
$ docker run --env SOMEONE=busybox busybox echo "Hello $SOMEONE"
Hello host
docker run --env SOMEONE=busybox busybox sh -c 'echo "Hello $SOMEONE"'