Rob*_*low 2 bash containers environment-variables docker
如何在 docker 容器内运行命令,使用docker run,其中在容器内评估 bash 变量?
例如:
$ SOMEONE=host
$ docker run --env SOMEONE=busybox busybox echo "Hello $SOMEONE"
Hello host
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它输出Hello busybox?
为了防止从外壳发生替换,需要使用单引号,而不是双引号。
为了确保有是内壳是可以做的替代品(echo没有任何这样的功能本身!),我们需要显式调用sh -c; 否则,Docker 将直接execlp("echo", "echo", "$SOMEONE", NUL)在容器内部调用,实际上并没有进行任何替换。
因此:
docker run --env SOMEONE=busybox busybox sh -c 'echo "Hello $SOMEONE"'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3254 次 |
| 最近记录: |