【问题标题】:How to use export command to set environment variable with docker exec?如何使用导出命令通过 docker exec 设置环境变量?
【发布时间】:2019-10-31 17:33:12
【问题描述】:

我有一个使用祖先 my_base_image 的正在运行的 docker 容器。现在当容器运行时,我可以使用带有docker exec 的导出命令设置环境变量吗?如果是,怎么做?

我尝试使用以下方法,但不起作用

docker exec -i -t $(docker ps -q --filter ancestor=`my_base_image`) bash -c "export my_env_var=hey"

基本上我想将 my_env_var=hey 设置为 docker 容器内的环境变量。我知道这可以通过在 Dockerfile 中使用 .env_fileenv 键 docker-compose 和 ENV 以多种方式完成。但我只想知道是否可以使用 docker exec 命令

【问题讨论】:

    标签: docker docker-compose dockerfile docker-container docker-exec


    【解决方案1】:

    这是不可能的。一个进程永远不能改变它自己以外的任何其他进程的环境,除了它可以指定它自己启动的进程的初始环境。在这种情况下,您的 docker exec shell 并未启动主容器进程,因此它无法更改该进程的环境变量。

    这是您需要停止、删除和重新创建容器的众多更改之一。您应该将此视为非常例行的容器维护,并计划最终删除该容器。这意味着,例如,将需要在容器外部持久化的任何数据保留在外部数据库中,但可能在已安装的卷中。

    【讨论】:

    • 如何使用exec -it 进入容器并导出环境。 shell 中的变量?
    • 这将影响该外壳,而不会影响其他任何东西。 docker exec 真的不应该成为您核心工作流程的一部分,尤其是对于像这样的配置更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 2022-01-12
    • 1970-01-01
    • 2019-07-28
    相关资源
    最近更新 更多