You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用docker exec将所有环境变量传入容器

无需临时文件实现 docker exec 传入当前Shell所有环境变量

需求背景

执行docker exec时,通常通过-e参数逐个指定要传入容器的环境变量,示例:

docker exec -ti -e VAR=1 -e HOME container_name command

但希望无需逐个指定,直接传入当前Shell的所有环境变量(类似sudo -E的效果),且不想使用创建临时文件的方案:

env > env_vars && docker exec -ti --env-file ./env_vars container_name command

寻求一步式的Bash技巧实现。

一步式解决方案

利用Bash的进程替换特性,直接将env的输出作为虚拟文件传递给--env-file参数,无需创建实体临时文件:

docker exec -ti --env-file <(env) container_name command

原理:<(env)会让Bash创建一个匿名管道,把env命令输出的环境变量内容作为虚拟文件提供给docker exec使用,完全替代临时文件的作用且不会在磁盘留下痕迹。

重要提示

  • 传入所有环境变量违背容器进程隔离的设计初衷,此方案仅用于技术探讨,不建议在实际场景中使用。
  • 该方案依赖Bash的进程替换特性,在POSIX标准Shell(如sh)中无法运行。

内容的提问来源于stack exchange,提问作者Nagev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:42:16