|
|
|
@ -95,27 +95,27 @@
|
|
|
|
|
2. Dockerfile中相对路径默认都是Dockerfile所在的目录
|
|
|
|
|
3. 因Docker构建的分层构建,联合挂载的特性,Dockerfile中,每一条指令被视为一层,尽量一行写多个指令(&&连接 \用来分行)。
|
|
|
|
|
4. 约定:指令大写,内容小写
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
# 构建流程
|
|
|
|
|
# docke build . 默认构建
|
|
|
|
|
|
|
|
|
|
# 输出,#行为手动添加的说明
|
|
|
|
|
# 加载 Dockerfile 文件
|
|
|
|
|
=> [internal] load build definition from Dockerfile
|
|
|
|
|
# 把 dockerfile 文件传输到Docker守护进程服务,大小为 149B 0.0s
|
|
|
|
|
=> => transferring dockerfile: 149B
|
|
|
|
|
# 加载.dockerignore(Dockerfile目录下,不上传文件配置文件) 文件 0.0s
|
|
|
|
|
=> [internal] load .dockerignore
|
|
|
|
|
# 传输构建上下文(会传Docfile目录及子目录中除.dockerignore配置外的所有文件及文件夹) 0.0s
|
|
|
|
|
=> => transferring context: 2B
|
|
|
|
|
# 从基础镜像加载元数据 0.0s
|
|
|
|
|
=> [internal] load metadata for docker.io/library/centos:latest
|
|
|
|
|
# 加载构建上下文 3.0s
|
|
|
|
|
=> [internal] load build context
|
|
|
|
|
# 传输构建上下文 0.0s
|
|
|
|
|
=> => transferring context: 125B
|
|
|
|
|
# 构建第一阶段:下载与验证基础镜像 0.0s
|
|
|
|
|
=> [internal] load build definition from Dockerfile 0.0s
|
|
|
|
|
# 把 dockerfile 文件传输到Docker守护进程服务,大小为 149B
|
|
|
|
|
=> => transferring dockerfile: 149B 0.0s
|
|
|
|
|
# 加载.dockerignore(Dockerfile目录下,不上传文件配置文件) 文件
|
|
|
|
|
=> [internal] load .dockerignore 0.0s
|
|
|
|
|
# 传输构建上下文(会传Docfile目录及子目录中除.dockerignore配置外的所有文件及文件夹)
|
|
|
|
|
=> => transferring context: 2B 0.0s
|
|
|
|
|
# 从基础镜像加载元数据
|
|
|
|
|
=> [internal] load metadata for docker.io/library/centos:latest 3.0s
|
|
|
|
|
# 加载构建上下文
|
|
|
|
|
=> [internal] load build context 0.0s
|
|
|
|
|
# 传输构建上下文
|
|
|
|
|
=> => transferring context: 125B 0.0s
|
|
|
|
|
# 构建第一阶段:下载与验证基础镜像
|
|
|
|
|
=> [1/2] FROM docker.io/library/centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 10.8s
|
|
|
|
|
=> => resolve docker.io/library/centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 0.0s
|
|
|
|
|
=> => sha256:a1d0c75327776413fa0db9ed3adcdbadedc95a662eb1d360dad82bb913f8a1d1 83.52MB / 83.52MB 7.0s
|
|
|
|
@ -125,16 +125,17 @@
|
|
|
|
|
=> => extracting sha256:a1d0c75327776413fa0db9ed3adcdbadedc95a662eb1d360dad82bb913f8a1d1
|
|
|
|
|
|
|
|
|
|
# 构建第二阶段
|
|
|
|
|
# 执行命令 3.6s
|
|
|
|
|
=> [2/2] ADD ./project/ /usr/local/app/
|
|
|
|
|
# 导出镜像 0.3s
|
|
|
|
|
=> exporting to image
|
|
|
|
|
# 导出镜像层 0.0s
|
|
|
|
|
=> => exporting layers
|
|
|
|
|
# 写入镜像文件 0.0s
|
|
|
|
|
# 执行命令
|
|
|
|
|
=> [2/2] ADD ./project/ /usr/local/app/ 3.6s
|
|
|
|
|
# 导出镜像
|
|
|
|
|
=> exporting to image 0.3s
|
|
|
|
|
# 导出镜像层
|
|
|
|
|
=> => exporting layers 0.0s
|
|
|
|
|
# 写入镜像文件
|
|
|
|
|
=> => writing image sha256:9f21ab65d16f8a8599aec0ba0c1b31b806ae675be2701a6d671ec42887ab5e56
|
|
|
|
|
# 给镜像打标签 0.0s
|
|
|
|
|
=> => naming to docker.io/library/mycentos:study1
|
|
|
|
|
0.0s
|
|
|
|
|
# 给镜像打标签
|
|
|
|
|
=> => naming to docker.io/library/mycentos:study1 0.0s
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Dockerfile文件
|
|
|
|
@ -161,7 +162,7 @@ ADD ./project/ /usr/local/$file/
|
|
|
|
|
|
|
|
|
|
+ FROM
|
|
|
|
|
|
|
|
|
|
> FROM 指令必须是非注释的第一个指令, 可以使用 “ AS 别名” 提供别名,在路另外使用( --from)。
|
|
|
|
|
> FROM 指令必须是非注释的第一个指令(新版AGU指令可值于前面), 可以使用 “ AS 别名” 提供别名,在路另外使用( --from=别名)。
|
|
|
|
|
>
|
|
|
|
|
> 指定了基础镜像,后面的所有指令都是运行在该基础镜像环境上的。
|
|
|
|
|
>
|
|
|
|
@ -171,7 +172,7 @@ ADD ./project/ /usr/local/$file/
|
|
|
|
|
#语法格式
|
|
|
|
|
FROM <image>
|
|
|
|
|
FROM <image>:<tag>
|
|
|
|
|
FROM <image>@<digest>
|
|
|
|
|
FROM <image>@<digest摘要即md5值>
|
|
|
|
|
|
|
|
|
|
# 特殊例子
|
|
|
|
|
#不以任何镜像为基础(内置空白镜像)
|
|
|
|
@ -181,9 +182,8 @@ FROM scratch
|
|
|
|
|
# 大小只有1.2M,适合用来测试
|
|
|
|
|
FROM busybox
|
|
|
|
|
|
|
|
|
|
# .net core例子
|
|
|
|
|
# .net core sdk
|
|
|
|
|
mcr.microsoft.com/dotnet/sdk:2.1 AS build
|
|
|
|
|
FROM mcr.microsoft.com/dotnet/sdk:2.1 AS build
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## run
|
|
|
|
|