gpt4 book ai didi

带有 -ef 标志的 Docker exec

转载 作者:行者123 更新时间:2023-12-02 19:57:14 26 4
gpt4 key购买 nike

什么 docker exec-ef 一起使用旗帜 ?我试图在文档中找到它
但没有运气。

此主题没有帮助 docker exec or docker container exec

最佳答案

鉴于 docker exec没有 -f选项,f这是 -e 的论据( --env ),反过来,通常接受一个列表 KEY=VALUE对 - 要为 exec 设置/修改的环境变量'd 过程。

有趣的一点是the documentation两者都没有描述 --env 的确切格式。选项参数,也没有解释,如果参数不是通常的会发生什么 KEY=VALUE形式。

考虑到 -ef是一个有效的参数,假设它处理 f 是合乎逻辑的。作为环境变量的名称。此外,由于我们不提供值(名称后没有 =),因此假设变量未更改或未设置是合理的。我们可以凭经验检查这一点。创建具有附加环境变量集的容器:

$ docker run -d -e TESTVAR=testval --name test alpine sleep 1000

检查容器的实际环境:
$ docker exec test env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=27979b7f0ceb
TESTVAR=testval
HOME=/root

然后尝试运行 exec-e TESTVAR :
$ docker exec -e TESTVAR test env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=27979b7f0ceb
HOME=/root

看起来变量未设置。但是如果 TESTVAR当前是否在我们的 shell 中设置?
$ export TESTVAR=12345
$ docker exec -e TESTVAR test env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=3fa7190750aa
TESTVAR=12345
HOME=/root

因此,似乎传递没有值的变量名称为 exec 设置了这个变量。 'd process 到当前为调用进程设置的值(实际上,这种行为在 docker run 的文档中有所描述,而 docker exec 的行为方式相同,尽管未记录)。

回到原来的问题,答案是: docker exec -ef设置环境变量 fexec 'd 处理到值 f当前 shell 中的变量,如果设置了此变量,或者为 exec 取消设置它'd 处理,如果当前未设置变量。

关于带有 -ef 标志的 Docker exec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57210290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com