学习Docker(2017-10-3)

2017-10-11 martascherk329

标题中已经告诉我们 ENV 是设置环境变量的,环境变量大家都不陌生,就是定义一个环境变量,可以在程序中重复使用,一般用在需要大量使用该参数的地方。这个好处就是,方便代码的维护。

格式:

  1. ENV key value
  2. ENV key1=value1 key2=value2

这个指令很容易理解,直接上图吧

ARG 构建参数

跟 ENV 效果一样,都是设置环境变量,但 ARG 的区别在于,它是设置 构建环境 的环境变量。

格式:

ARG <参数名>[=<默认值>]

在 Dockerfile 中 的 ARG 指令是定义参数名称,以及定义其默认值。该默认值可以在构建命令中覆盖

docker --build-arg<参数名>=<值>

需要注意的是,在1.13版本之前 要求使用 –build-arg 中的参数名,必须在 Dockerfile 中用 ARG 定义。在1.13开始,这种严格的限制解除了,不会报错退出,而只是显示警告信息。

VOLUME 定义匿名类

容器运行时应该尽量保持容器存储层不发生写操作,对于数据库类需要保存动态数据的应用,其数据库文件应该保存于卷(volume)中。为了防止运行时用户忘记将动态文件保存目录挂载为卷。在 Dockerfile 中,我们事先指定某些目录挂载为匿名卷,这样在运行时如果用户不指定挂载,其应用也可以正常运行,不会像容器存储层写入大量数据。

关于挂载

格式:

VOLUME [“<路径1>”,”<路径2>”…]

VOLUME /data

该命令表示,在运行时自动挂载为匿名类,任何想 /data 中写入的信息都不会记录进容器存储层,从而保证容器存储层的无状态化。运行时也可以覆盖掉这个匿名挂载设置

docker run -d -v mydata:/data xxxx
<!--mydata这个命名卷挂载了 /data
 这个位置-->

用户评论
开源开发学习小组列表