首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Dockerfile中设置环境不反映在docker exec中

是因为Docker容器的运行过程中使用的是不同的上下文环境。

当我们在Dockerfile中设置环境变量时,这些环境变量将被写入到镜像的元数据中,即在容器启动之前就已经被定义好了。而docker exec命令是在容器运行时启动一个新的进程,并在该进程的上下文中执行命令,此时容器已经在运行状态,它并不会重新读取镜像中的元数据。

要使在Dockerfile中设置的环境变量在docker exec中生效,可以通过以下几种方式进行处理:

  1. 在容器启动命令中显式地指定环境变量:可以在docker run命令中使用-e选项或--env-file选项来设置环境变量。这样在容器启动时就会将环境变量传递给容器的运行时环境。
  2. 通过docker exec命令中的-e选项设置环境变量:在执行docker exec命令时,可以通过-e选项来设置临时环境变量,这样只在该次命令执行过程中生效。
  3. 在容器内部的shell脚本中设置环境变量:可以在容器内部的启动脚本或者其他脚本中使用export命令来设置环境变量,这样可以保证在容器运行时每次使用docker exec命令都能够获取到正确的环境变量。

总结起来,Dockerfile中设置的环境变量只在容器启动时生效,而docker exec是在容器运行时执行命令,无法获取到Dockerfile中设置的环境变量。如果需要在docker exec中使用这些环境变量,需要通过其他方式进行设置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Atom设置Python开发环境

image.png Atom设置Python开发环境 当然,网络上有很多很棒的文本编辑器。Sublime Text,Bracket,Atom等。...在这里,我将介绍如何使用Atom来建立一个“Python友好”的开发环境,我将提到一些对python编码有用的软件包,然后看看如何编写一些基本代码。...一旦你的代码长达数百行,可能很难找到你代码库的位置。Minimap提供整个代码的“缩小”视图,并突出显示代码的位置,将整个可视化功能保存在Atom编辑器的简明侧边栏。...安装此软件包后,可能需要单击设置并选择“保存时格式化”选项。这也需要您在命令行上使用pip完成安装,正如您在文档中看到的那样。...这允许您使用“command + i”键盘快捷键Atom编辑器运行脚本。代码将在文本编辑器底部的面板运行。

4.9K80
  • Atom设置Python开发环境

    1_Jxo80CShOCJQDwC2DPp2VQ.png Atom设置Python开发环境 当然,这里有很多很棒的文本编辑器。Sublime Text,Brackets,Atom。...在这里,我将介绍如何使用Atom设置一个“友好的Python”的开发环境,一些对python编码有用的软件包,然后看看如何编写一些基本代码。...一旦你的代码长达数百行,可能很难找到你代码库的位置。Minimap提供整个代码的“缩小”视图,并突出显示当前代码所在的位置,并将整个可视化文件显示Atom编辑器的简明侧边栏。...安装此软件包后,可能需要点击设置并选择“保存时格式化”选项。这也需要您在命令行上使用pip完成安装,正如您在文档中看到的那样。...这允许您使用“command + i”键盘快捷键Atom编辑器运行脚本。代码将在文本编辑器底部的面板运行。

    2.1K70

    怎样Ubuntu设置环境变量

    单击屏幕左上角的Ubuntu图标,弹出的窗口中点击搜索栏,输入“terminal”, 稍等片刻,终端就会赫然目!二话不说,直接点击! 然后打开环境设置文件。...终端输入"sudo gedit /etc/profile",回车,然后输入管理员密码后回车,即可打开。 加入环境变量设置语句。...Linux系统设置环境变量的语句是: export = 我们只需在这里新开一行,按照这个格式填写即可。...只需输入 echo 回车即可。 对于我设置的变量,要输入: echo 不过目前,环境变量还只是部分生效,这就意味着重启终端后,原先的设置又没了。...不必担心,重启系统,让环境变量的设置完全生效。 注意事项 设置环境变量名不能与系统已有的相同,如PATH,否则会导致系统出问题!

    9.7K10

    一套Dockerfile完成编译和运行环境部署

    不管是编译型语言还是解释型语言,我们都可以把上述过程拆解为两部分 解释型语言 编译环境 解释环境 只是去除了Java代码和编译器,并不会让Docker产出的镜像小多少。...方法 我们可以一套Dockerfile,将编译环境的产出放置到运行环境,并且抛弃编译环境,只留下运行环境的镜像。...在运行环境Dockerfile我们需要借此标识引用编译环境,来导出二进制编译结果等在运行环境需要数据。...WORKDIR /source/CppServer RUN zip -r www.zip www/ 运行环境 运行环境的命令和编译环境的命令是一个Dockerfile的。.../cppserver-example-http_server"] 打包命令和运行命令 docker build --pull --rm -f "Dockerfile" -t cppserver:latest

    28600

    初探WSL设置vim前端开发环境

    之前的 《win10的WSL设置前端开发环境》 一文,介绍了 win10 结合其 linux 子系统(WSL)的前端开发设置,使用的是 VSCode 开发工具。...而在某些情况下,出于追求工具轻量化、减轻系统负担,或应付临时开发场景等目的,只需要简单设置一下终端 vim 开发环境,借助各种强大成熟的插件,也能达到八九不离十的效果。...话不多说,直接上干货~ 最终效果 WSL (Ubuntu 18.04) 终端: ?...,上下选择文件后打开 go: 同上,但焦点留在文件树 t: 新页签打开 T: 同上,但焦点留在文件树 g + t: 到下一个页签 g + T: 到上一个页签 i: 在上下分割页打开 gi: 同上,...Ctrl + T: 新页签打开 Ctrl + S: 在上下新分割页打开 Ctrl + V: 左右新分割页打开 内容搜索 :Ag 文本内容: 搜索项目内包含文本内容的文件,快捷键同文件搜索 本文中的配置大抵只是个初始化的程度

    2.2K10

    特定环境安装指定版本的Docker

    通常用官方提供的安装脚本或软件源安装都是安装的比较新 Docker 版本,有时我们需要在一些特定环境的服务器上安装指定版本的 Docker。今天我们就来讲一讲如何安装指定版本的 Docker 。...移除其它版本Docker 如果之前存在其它版本的Docker,可以使用以下命令先移出: Ubuntu $ apt-get purge docker-engine CentOS $ yum remove...docker-engine 安装指定版本Docker 根据实际情况,选定要安装的 Docker 版本进行安装。...=1.13.1-0~ubuntu-xenial CentOS $ yum install docker-engine-1.13.1-1.el7.centos.x86_64 验证Docker版本 $ docker...raw=true | sh 使用需要的 Docker 版本替换以下脚本的 ,目前该脚本支持的 Docker 版本: 1.10.3 1.11.2 1.12.1 1.12.2 1.12.3 1.12.4

    3.8K20

    DockerPHP项目开发环境的应用

    依赖服务很多,本地搭建一套环境成本越来越高,初级人员很难解决环境部署的一些问题 2. 服务的版本差异及OS的差异都可能导致线上环境BUG 3....下面介绍[Docker构建PHP项目开发环境](http://avnpc.com/pages/build-php-develop-env-by-docker)过程的演进,本文中假设你的操作系统为Linux...MySQL容器 MySQL继承自官方的[MySQL5.6镜像](https://registry.hub.docker.com/_/mysql),Dockerfile仅有一行,无需做任何额外处理,因为普通需求官方都已经镜像实现了...Redis容器 为了方便演示,Redis仅仅作为缓存使用,没有持久化需求,因此Dockerfile仅有一行 ``` FROM redis:3.0 ``` 容器的连接 上面已经将原本一个容器运行的服务分拆到多个容器...未来我们会进一步将Docker应用到CI以及生产环境

    2.5K100

    pytorch安装、环境搭建及pycharm设置

    pytorch安装、环境搭建及pycharm设置 这两天同学问我pytorch的安装,因为自己的已经安装好了,但是好像又有点遗忘,之前也是花了很大的功夫才弄明白,所以整理的比较详细。...原因是我并没有把python安装在本机,而是下载了Anaconda Navigator,它是Anaconda发行包包含的桌面图形界面,可以用来方便地启动应用、方便的管理conda包、环境和频道,不需要使用命令行的命令...二、安装pytorch 首先我们要创建一个pytorch的环境:打开应用——create——输入环境名——选择下载好的python版本——创建 创建完成后如下图所示: 然后左击箭头—...三、pytorchpycharm设置 实际上anaconda中有自带的编译器,Jupyter notebook和Spyter,但是为了项目更好的管理,也可以选择下载pycharm。...——project interpreter——add 注意刚才创建的pytorch环境会自动保存在Anaconda\envs\路径下,很容易找到,至此,j就可以pycharm中使用pytorch

    3.4K40

    WSL 2 基于 Docker 编排 LNMP 运行环境

    Windows 宿主机打开已运行的 Docker Desktop 设置界面,通用(General)选项勾选「Use the WSL 2 based engine」: ?...然后应用并重启 Docker PowerShell 运行 wsl --set-default Ubuntu-18.04 命令设置默认 WSL 虚拟机为之前安装的 Ubuntu-18.04: ?...再次打开 Docker Desktop 的设置界面,资源「Resources」选项的子菜单「WSL INTEGRATION」按照下面截图勾选对应输入框,在对应虚拟机系统启用集成 Docker 到... Ubuntu 运行 Docker 命令 Windows PowerShell 运行 wsl 启动默认的 Ubuntu 虚拟机,就可以运行 docker 相关命令了,表示 Docker 已经成功集成到...Mac 环境完全一样,参考 Mac/Windows 系统中使用 Laradock 搭建基于 Docker 的 Laravel 开发环境这篇文章即可,这里不再单独演示了,大家可以作为课后作业去自行体验下

    6.9K10

    win10的WSL设置前端开发环境

    ,webpack 实时编译不执行 较新的 win10 版本可以正常监听并重新编译,但浏览器不会随之更新 目前唯一成功的方案是 VSCode 结合插件达成的,按文档 https://code.visualstudio.com.../docs/remote/wsl 做如下设置 VSCode 安装 Remote Development 扩展包 wsl 窗口中进入要开发的项目目录,运行 code ....安装必要的组件 VSCode 自动重启后, wsl 运行 npm 命令正常开发即可 同时要注意这里项目中的 npm 依赖项要在 wsl 环境下重新 install,原来 cmd / powershell...结合 WSL 使用 Docker in Windows10 如果项目涉及到要用 docker 打包,可以 win10 先安装好 Docker,并作如下设置: 开启 Docker in Windows10...设置的 Expose daemon on localhost:2375 without TLS sudo usermod -aG docker $USER sudo apt-get install

    4.2K20

    Docker环境开发Java 8 Spring Boot应用程序

    如果你对此感兴趣,可以从Docker的官方网站上了解它的基本信息和获取安装指南。 一旦你安装了Docker工具箱,你就不需要安装此示例应用程序所需的Java 8或MySQL环境了。...执行maven命令 CMD ["mvn", "clean", "package", "exec:java"] 此Docker文件配置了一个从Docker Hub的Java 8镜像继承过来的Docker镜像...: # /docker-entrypoint-initdb.d 的内容将在 mysqld 启动时被执行 ADD mysql/ /docker-entrypoint-initdb.d/ 此Dockerfile...MySQL映像上,我将db-schema创建脚本放在MySQL文件夹。我将用来创建“人”表的单个SQL文件data.sql放在此文件夹。 现在,我们来看看此应用程序的结构。...你可以用一个简单的命令来运行整个项目: docker-compose up -d 可以本地计算机上使用以下两个命令对其进行测试: 创建新的人 curl -H "Content-Type: application

    3.7K70

    Docker for Devs:创建一个开发版镜像

    接下来的 Docker for Developers 系列,我们将试着配置一个可编辑的应用程序开发环境镜像。...Docker for Developers:入门 我们本教程的这一部分的目标是生成一个代表我们应用程序开发版本的镜像,并为它配置一个(可运行)容器所需的必要组件,这样我们就能对文件系统进行更改并将其反映在容器...但通过容器的状态变化并不会反映在镜像,任何文件更改都严格保存在容器。这就带来了一个问题:当一个容器脱机时,容器实例化的底层镜像任何改变都不会被保存。...或者您需要打开一个新的终端/命令提示符并通过: docker exec -it express-dev-app /bin/sh 提示符下输入命令: ls -l image.png 我们做了什么?...我们将我们的应用程序设置模块化,到一个包含应用程序必要设置的容器,同时保持对我们运行在容器的应用程序源代码的控制。 本篇教程,我们只是初步地应用程序开发应用 Docker 容器化技术。

    1.6K91

    Centos7安装hexo基础环境设置博客映射

    profile 该文件底部增加下面两行 export NODE_HOME=node目录 export PATH=$NODE_HOME/bin:$PATH 执行命令生效环境变量后再次重新尝试获取版本信息...image.png 2、切换到自己的服务器~目录下执行 ssh-keygen -t rsa -C "你的github设置的邮箱" 建议设置ssh的秘钥时设置一个证书密码 cd .ssh/ cat...image.png 4、服务器中进行执行以下命令进行测试ssh直连是否可用 ssh -T git@github.com 这里执行时会让输入一个密码,这个密码就是上面证书设置的密码,如果上面没有设置密码...hexo clean hexo generate hexo deploy 这时可以稍微等一会,浏览器输入http://上面设置的名称.github.io网站访问自己的博客了 注:提交的过程中会让输入...image.png 2、打开GitHub个人博客项目的设置页面,进行设置自己的域名。 ?

    2.7K31
    领券