docker添加新的环境变量_DockerFile 设置环境变量
镜像的Layer
在docker docs里面有一句话:
We’ve already seen that Docker images are read-only templates from which Docker containers are launched. Each image consists of a series of layers. Docker makes use of union file systems to combine these layers into a single image. Union file systems allow files and directories of separate file systems, known as branches, to be transparently overlaid, forming a single coherent file system.
对于docker的images,是由一层层的layer组成的,然后通过联合挂载的方式挂载成一个文件系统。
假设你有以下的dockerfile:
FROM ubuntu
ENV http_proxy 10.144.xx.xx:8080
ENTRYPOINT ["/usr/bin/bash"]
首先你选择了基础镜像ubuntu,这个镜像有很多层。可以从/val/lib/docker下面找到该镜像的信息和每一层的信息。
然后ENV是设置了一个环境变量,这句命令同样会产生一个layer,再然后就是需要执行的命令,同样会产生一个layer。如果你更改了某一层的信息,那么从这层之后所有的层都需要重新build。
更多的关于docker images的原理,可以自行百度。
DockerFile的ARG和ENV
ARG主要是定义一个变量,在你使用docker build的时候可以通过参数来设定。
docker build --build-arg =
因此如果你需要在build期间使用某些变量,那么ARG是最好的选择。
如果你是想在运行期间使用,那么ENV是唯一的选择。
ENV主要是定义环境变量,在docker run的时候ENV的配置会加载到容易内部,但ARG的参数在内部是没法看到的。同时也可以通过下面命令更改ENV的默认值:
docker run -e var=yyy
如果现在我想在BUILD的时候,改变我的环境变量,而不是每次RUN的时候更改,需要怎么做?
这个时候就就可以两者结合使用。
ARG var
ENV var=${var}
在dockerfile内部可以这样控制命令的参数。
ARG protocal
ARG address
ARG port
ENV protocal=${protocal} \
address=${address} \
port=${port}
CMD /usr/bin/lightweightservicediscovery --listen=${PROTOCAL:-ipv4}:${ADDRESS:-0.0.0.0}:${port:-49188}
//如果读取环境变量失败再采用后面的默认值。
这样既可以在build的时候通过docker build --build-arg var=xxx 来传递参数,也可以通过在运行的时候通过docker run -e var=yyy 来传递参数。
docker添加新的环境变量_DockerFile 设置环境变量相关推荐
- docker build 变量_DockerFile 设置环境变量
镜像的Layer 在docker docs里面有一句话: We've already seen that Docker images are read-only templates from whic ...
- docker添加新的环境变量_Docker容器环境变量设置与查看
设置环境变量 在编写Dockerfile时, 我们可以通过ENV来为Docker容器设置相关的环境变量,设置的环境变量在Docker容器中可以通过环境变量来进行引用. Docker容器环境变量设置方法 ...
- docker添加新的环境变量_Docker环境变量
环境变量 环境变量通常在与您正在使用的基本映像关联的Dockerfile中设置.也有Docker为每个新容器自动设置的环境变量.您可以指定其他变量,并使用-e或--env选项重新定义Docker设置的 ...
- docker添加新的环境变量_docker使用教程[三]Dockfile小试牛刀
本来计划着今天要讲关于docker数据卷部分的知识和配置操作相关的,但是今天复习docker知识的时候恰好看到了Dockfile的知识,所以今天帮大家了解一下关于如何私人定制自己的docker镜像. ...
- docker添加新的环境变量_Docker的安装及部署Spring Boot项目操作详解!
本文使用Docker部署Spring Boot项目.部署之前需要环境中已经安装Docker和Maven(用于打包),所以本文先进行安装Docker和Maven:接着搭建一个Spring Boot项目, ...
- Linux设置环境变量小结:设置永久变量临时变量 全局变量局部变量
1.总结背景 在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现"command not found"的提示内容.如果每次都到安装目标文件夹内,找到可执行 ...
- centos设置java环境变量,CentOS设置环境变量
查看环境变量 查看某个环境变量的值,需要使用 "echo $环境变量名". echo命令用于在终端输出字符串或者变量的值,格式如下: echo [字符串 | $变量名] 常见的环境 ...
- centos配置c语言环境变量,CentOS7设置环境变量
一.环境变量的概念 1.环境变量的含义 程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的. 2.环境变量的分类 1)按生效的范围分类. 系统环境变量:公共的,对全部的 ...
- linux取消设置环境变量,linux设置环境变量
1.临时生效性(只对当前会话有效) export http_proxy="socks://192.168.0.1:10808" 2.永久生效性 (1)在/etc/profile尾部 ...
- python设置环境变量_Python设置环境变量
python设置环境变量 We can set an environment variable in Python using os module. Python os module environ ...
最新文章
- java Collection-Map 之 TreeMap
- LTE基带芯片出货量首次超过50%
- DNS部署(四)之lvs+keepalived+bind架构高可用负载均衡DNS系统
- 循环往list中add对象却总是add的是一个对象
- SAP Spartacus 升级时关于 schematics 的更新
- python程序设计是干什么的_python程序员有学设计模式的必要吗?
- leetcode 117. 填充每个节点的下一个右侧节点指针 II(Populating Next Right Pointers in Each Node II)...
- 对于tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y,labels=tf.argmax(y_,1))的研究
- eclipse中引入聚合工程
- PDFCreator(pdf转换器电脑版免费版)官方繁体中文版V4.3.0 | PDF生成器下载 | pdf转换器哪个好用?
- kindle 越狱_越狱您的Kindle,实现简单的屏幕保护程序自定义
- Android权限Uri.parse的几种用法 (学习日记)
- oracle的报告,Oracle数据库(RAC)巡检报告
- Adaboost 算法的公式推导与讲解
- 我国天宫空间站以及各个仓位介绍
- Dell笔记本(预装win10)重装win7的方法
- phpexcel中文手册(转)
- 手机 9006 端口 不断的闪掉
- DC NXT TOPO flow (1)SPG flow 基础
- HP LaserJet Pro 300 彩色打印机 M351a - 每次重启电脑都提示安装驱动
热门文章
- WPS2000系列之四图文混编(转)
- 游戏开发设计模式(一):单例模式
- 一些内网穿透的软件一览表
- 【Excel,遗忘密码后如何撤销工作表保护密码】
- 反恐精英online单机版有各种武器
- 电脑鼠标单击变成了双击如何恢复
- 用计算机弹让我做你的眼睛,童珺《让我做你的眼睛 (改编版)》[FLAC/MP3-320K]
- 算法分析与设计实验报告——实现分治法求解棋盘覆盖问题
- python爬虫小说实例源码_Python下载网络小说实例代码
- [转]企业安全建设二——如何推动安全策略