构建镜像 docker build
1
2
|
$ docker build [选项] <上下文路径/URL/->
$ docker build -t nginx:v3 . |
镜像构建的上下文(Context)
docker build工作原理
C/S模式,Docker Client通过Docker Daemon提供的REST API以远程调用的方式与服务器进行交互;而docker build构建镜像是在服务端进行,其所需文件由客户端打包上传
上下文
构建镜像时的上下文路径,即docker build打包的文件所依赖的路径;用户指定构建镜像的上下文路径后,docker build命令会去打包该路径下的所有内容,然后上传给docker引擎进行构建
1
2
|
$ docker build -t nginx:v3 ../nginx
$ COPY ./package.json /app/ |
这里./package.json是相对于docker build指定的路径,在上下文中为:../nginx/package.json
,而不是执行docker build命令所在目录。
.dockerignore
类似.gitignore, 用户忽略不需要作为上下文传递给docker引擎的文件
其他docker build用法
直接用git repo进行构建
1
|
$ docker build https://github.com/twang2218/gitlab-ce-zh.git#:8.14 |
用给定的tar压缩包进行构建
1
|
$ docker build http://server/context.tar.gz |
从标准输入读取Dockerfile进行构建
1
2
|
$ docker build - < Dockerfile
$ cat Dockerfile | docker build - |
从标准输入中读取上下文进行构建
1
|
$ docker build - < context.tar.gz |