牛下载:绿色软件官方软件免费下载基地!
所在位置:首页 > 新闻资讯 > Dockerfile参考(1) – 用法

Dockerfile参考(1) – 用法

发布时间: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
反对
收藏
  • 热门资讯
  • 最新资讯
  • 应用排行榜
  • 游戏排行榜