当前位置:首页 > 科技

云计算核心技术Docker教程: build 命令详解

科技 2020-07-27 16:31:35

来源:TechWeb   责任编辑:禹锋

  Dockerfile是一个用来构建镜像的文本文件,在docker客户端命令行中我们可以通过docker build 命令使用Dockerfile文件来创建镜像。

  语法示例:

  docker build [OPTIONS] PATH | URL | -

  OPTIONS说明:

  --build-arg=[] :设置镜像创建时的变量;

  --cpu-shares :设置 cpu 使用权重;

  --cpu-period :限制 CPU CFS周期;

  --cpu-quota :限制 CPU CFS配额;

  --cpuset-cpus :指定使用的CPU id;

  --cpuset-mems :指定使用的内存 id;

  --disable-content-trust :忽略校验,默认开启;

  -f :指定要使用的Dockerfile路径;

  --force-rm :设置镜像过程中删除中间容器;

  --isolation :使用容器隔离技术;

  --label=[] :设置镜像使用的元数据;

  -m :设置内存最大值;

  --memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;

  --no-cache :创建镜像的过程不使用缓存;

  --pull :尝试去更新镜像的新版本;

  --quiet, -q :安静模式,成功后只输出镜像 ID;

  --rm :设置镜像成功后删除中间容器;

  --shm-size :设置/dev/shm的大小,默认值是64M;

  --ulimit :Ulimit配置。

  --tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

  --network: 默认 default。在构建期间设置RUN指令的网络模式

  例如,使用当前目录的 Dockerfile 创建镜像,标签为 runoob/ubuntu:v1:

  docker build -t runoob/ubuntu:v1 .

  使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像:

  docker build github.com/creack/docker-firefox

  也可以通过 -f Dockerfile 文件的位置:

  $ docker build -f /path/to/a/Dockerfile .

  在 Docker 守护进程执行 Dockerfile 中的指令前,首先会对 Dockerfile 进行语法检查,有语法错误时会返回:

  $ docker build -t test/myapp .

  Sending build context to Docker daemon 2.048 kB

  Error response from daemon: Unknown instruction: RUNCMD

  以上示例的.代表本次执行的上下文路径,docker 在构建镜像有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。

  解析:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。

  如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。

  注意:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。

免责声明:以上内容为本网转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点、亦不代表本网站赞同其观点或证实其内容的真实性。如有侵权请联系本网删除。
Top