发布时间:2020-05-22 20:51:41来源:阅读:
docker build命令从Dockerfile文件和上下文构建一个镜像。构建的上下文是一个指定的PATH或URL位置。PATH是你本地文件系统的一个目录。URL是git仓库地址。
上下文是递归处理的。所以PATH包括所有的子目录,URL包括仓库和它的子模块。下面是使用当前目录作为上下文的简单build命令:
$ docker build . Sending build context to Docker daemon 6.51 MB ...
build命令来docker daemon运行,不是由CLI。build进程的第一件事是递归发送整个上下文给daemon。大多数情况下,最好使用一个空的目录作为上下文并放置Dockerfile到此目录。只添加构建Dockerfile时所需的文件。
警告:不要使用root目录/作为PATH,因为它会导致build传递你硬盘的所有内容到docker daemon。
Dockerfile包括了一系列用于构建镜像的指令,例如COPY指令。为了提高构建性能,可以通过添加.dockerignore文件到上下文目录来排除文件和目录。
通常称为Dockerfile的Dockerfile文件放置在上下文的根目录。你可以将docker build与-f参数一起使用来指向你文件系统的任何位置的Dockerfile。
$ docker build -f /path/to/a/Dockerfile .
可以使用-t参数指定保存新镜像的仓库和标签:
$ docker build -t shykes/myapp .
要标记镜像到多个仓库,可以在build命令中使用多个-t参数:
$ docker build -t shykes/myapp:1.0.2 -t shykes/myapp:latest .
docker daemon一个接一个运行Dockerfile中的指令,在最后生成新镜像之前,如果需要,将提交每一个指令的结果到新镜像。docker daemon会自动清理你发送过来的上下文。
注意每个指令都是独立运行的,所以RUN cd /tmp不会对下一个指令有任何影响。
如果有可能,docker会重用镜像缓存来加速docker build进程。在控制台输出中使用到缓存时将显示Using cache消息。如:
$ docker build -t svendowideit/ambassador . Sending build context to Docker daemon 15.36 kB Step 1 : FROM alpine:3.2 ---> 31f630c65071 Step 2 : MAINTAINER SvenDowideit@home.org.au ---> Using cache ---> 2a1c91448f5f Step 3 : RUN apk update && apk add socat && rm -r /var/cache/ ---> Using cache ---> 21ed6e7fbb73 Step 4 : CMD env | grep _TCP= | (sed 's/.*_PORT_([0-9]*)_TCP=tcp://(.*):(.*)/socat -t 100000000 TCP4-LISTEN:1,fork,reuseaddr TCP4:2:3 &/' && echo wait) | sh ---> Using cache ---> 7ea8aef582cc Successfully built 7ea8aef582cc
上一篇:WES7或者机型快速参考V1.4
2020-06-29
Rescue and Recovery软件会长时间没有反应或者报错
联想新机型OKR7.0无法备份Windows 7解决方案
荒野行动:史上最强联动!发表参战宣言,唤醒初号机!
Linux alias设置指令的别名命令详解
如何在Windows 8 中关闭用户账户控制(UAC)
ThinkPad USB 3.0 Ethernet Adapter 驱动程序越权漏洞
如何正确安装天逸F40系列声卡驱动
python flask-sqlalchemy如何设置使自动建的mysql表字符集charset为utf8
Windows XP系统下笔记本蓝牙设备无法开启