前一段时候使用 Dockerfile 重新部署 NetCore3.1 项目的时候很顺利,由来由于一些原因,我把以前的镜像删除,如果我们大家继续使用 docker  build 命令去生成镜像的话就会报错,例如:
    

 1 [root@localhost PatrickLiu.NetCore]# docker build -t core31v1.112 -f Dockerfile .
2 Sending build context to Docker daemon 4.425MB
3 Step 1/17 : FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
4 ---> e3559b2d50bb
5 Step 2/17 : WORKDIR /app
6 ---> Using cache
7 ---> 1c0ab1a505e2
8 Step 3/17 : EXPOSE 80
9 ---> Using cache
10 ---> 49a72547d567
11 Step 4/17 : EXPOSE 443
12 unable to find image "sha256:c5ed536f38a6742b7c084fa87e6ac885d9697960a20860f7fd0299da578cf2c8"

  这样肯定是不行的,我们肯定希望使用没有缓存的方式重新加载文件生成镜像,怎么做呢?

  问题

    你想不用缓存重建Dockerfile。

  解决方法

    构建镜像时使用 --no-cache 参数。

  讨论

    为了强制docker构建镜像时不用缓存,执行带–no-cache参数的docker build命令。下面的示例是使用了–no-cache构建镜像。

  效果如下:

 1 [root@localhost PatrickLiu.NetCore]# docker build --no-cache -t core31v1.112 -f Dockerfile .
2 Sending build context to Docker daemon 4.425MB
3 Step 1/17 : FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
4 ---> e3559b2d50bb
5 Step 2/17 : WORKDIR /app
6 ---> Running in e8178063fe45
7 Removing intermediate container e8178063fe45
8 ---> 0a1d582b30d4
9 Step 3/17 : EXPOSE 80
10 ---> Running in e7716f388165
11 Removing intermediate container e7716f388165
12 ---> fc54a6e3c0aa
13 Step 4/17 : EXPOSE 443
14 ---> Running in 449680497b7f
15 Removing intermediate container 449680497b7f
16 ---> acf106867ca0
17 Step 5/17 : FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
18 3.1-buster: Pulling from dotnet/core/sdk
19 e4c3d3e4f7b0: Pull complete
20 101c41d0463b: Pull complete
21 8275efcd805f: Pull complete
22 751620502a7a: Pull complete
23 8e306865fd07: Pull complete
24 9d2f53e752c2: Downloading [===========================> ] 69.19MB/123.8MB
25 143a93e01eba: Download complete

  镜像文件重新生成,没有使用缓存,每天进步一点点,把问题记录下来,这就是成长了。继续努力。

  镜像最后生成的胜利步骤。

 1 [root@localhost PatrickLiu.NetCore]# docker build --no-cache -t core31v1.112 -f Dockerfile .
2 Sending build context to Docker daemon 4.425MB
3 Step 1/17 : FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
4 ---> e3559b2d50bb
5 Step 2/17 : WORKDIR /app
6 ---> Running in e8178063fe45
7 Removing intermediate container e8178063fe45
8 ---> 0a1d582b30d4
9 Step 3/17 : EXPOSE 80
10 ---> Running in e7716f388165
11 Removing intermediate container e7716f388165
12 ---> fc54a6e3c0aa
13 Step 4/17 : EXPOSE 443
14 ---> Running in 449680497b7f
15 Removing intermediate container 449680497b7f
16 ---> acf106867ca0
17 Step 5/17 : FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
18 3.1-buster: Pulling from dotnet/core/sdk
19 e4c3d3e4f7b0: Pull complete
20 101c41d0463b: Pull complete
21 8275efcd805f: Pull complete
22 751620502a7a: Pull complete
23 8e306865fd07: Pull complete
24 9d2f53e752c2: Pull complete
25 143a93e01eba: Pull complete
26 Digest: sha256:bfd6083e9cd36b37b2a4e9f1722cc958b6654fa96cb3d84ef78492ecf00dcd32
27 Status: Downloaded newer image for mcr.microsoft.com/dotnet/core/sdk:3.1-buster
28 ---> 5fe503d51830
29 Step 6/17 : WORKDIR /src
30 ---> Running in 4312c5d63f3f
31 Removing intermediate container 4312c5d63f3f
32 ---> 31cfbe6739ec
33 Step 7/17 : COPY ["PatrickLiu.NetCore.MvcDemo/PatrickLiu.NetCore.MvcDemo.csproj", "PatrickLiu.NetCore.MvcDemo/"]
34 ---> ba9ba79cc7d3
35 Step 8/17 : RUN dotnet restore "PatrickLiu.NetCore.MvcDemo/PatrickLiu.NetCore.MvcDemo.csproj"
36 ---> Running in 8d2c9ee24614
37 Determining projects to restore...
38 Restored /src/PatrickLiu.NetCore.MvcDemo/PatrickLiu.NetCore.MvcDemo.csproj (in 4.64 sec).
39 Removing intermediate container 8d2c9ee24614
40 ---> 872cce519821
41 Step 9/17 : COPY . .
42 ---> 4fe062b14ab1
43 Step 10/17 : WORKDIR "/src/PatrickLiu.NetCore.MvcDemo"
44 ---> Running in 431b1c2f4959
45 Removing intermediate container 431b1c2f4959
46 ---> b9dc3acf883c
47 Step 11/17 : RUN dotnet build "PatrickLiu.NetCore.MvcDemo.csproj" -c Release -o /app/build
48 ---> Running in 639b5e3d01df
49 Microsoft (R) Build Engine version 16.7.0+7fb82e5b2 for .NET
50 Copyright (C) Microsoft Corporation. All rights reserved.
51
52 Determining projects to restore...
53 All projects are up-to-date for restore.
54 PatrickLiu.NetCore.MvcDemo -> /app/build/PatrickLiu.NetCore.MvcDemo.dll
55 PatrickLiu.NetCore.MvcDemo -> /app/build/PatrickLiu.NetCore.MvcDemo.Views.dll
56
57 Build succeeded.
58 0 Warning(s)
59 0 Error(s)
60
61 Time Elapsed 00:00:19.21
62 Removing intermediate container 639b5e3d01df
63 ---> aeb1df18b3f6
64 Step 12/17 : FROM build AS publish
65 ---> aeb1df18b3f6
66 Step 13/17 : RUN dotnet publish "PatrickLiu.NetCore.MvcDemo.csproj" -c Release -o /app/publish
67 ---> Running in ac663a5be455
68 Microsoft (R) Build Engine version 16.7.0+7fb82e5b2 for .NET
69 Copyright (C) Microsoft Corporation. All rights reserved.
70
71 Determining projects to restore...
72 All projects are up-to-date for restore.
73 PatrickLiu.NetCore.MvcDemo -> /src/PatrickLiu.NetCore.MvcDemo/bin/Release/netcoreapp3.1/PatrickLiu.NetCore.MvcDemo.dll
74 PatrickLiu.NetCore.MvcDemo -> /src/PatrickLiu.NetCore.MvcDemo/bin/Release/netcoreapp3.1/PatrickLiu.NetCore.MvcDemo.Views.dll
75 PatrickLiu.NetCore.MvcDemo -> /app/publish/
76 Removing intermediate container ac663a5be455
77 ---> 6ffbf30a49af
78 Step 14/17 : FROM base AS final
79 ---> acf106867ca0
80 Step 15/17 : WORKDIR /app
81 ---> Running in 3dca58d70bef
82 Removing intermediate container 3dca58d70bef
83 ---> 37d1ad5bb22b
84 Step 16/17 : COPY --from=publish /app/publish .
85 ---> 09de2a366451
86 Step 17/17 : ENTRYPOINT ["dotnet", "PatrickLiu.NetCore.MvcDemo.dll"]
87 ---> Running in 2c41d28e90dc
88 Removing intermediate container 2c41d28e90dc
89 ---> 8bf4c94fbc04
90 Successfully built 8bf4c94fbc04
91 Successfully tagged core31v1.112:latest

    结束了。

使用 Dockerfile 文件但是不使用缓存生成镜像的更多相关文章

  1. 使用Dockerfile文件制作centos6.8基础镜像,基于centos基础镜像的ssh远程登录镜像,jdk1.8镜像,tomcat镜像,elasticsearch镜像等等

    一.首先制作一个centos6.8的裸机镜像 创建一个干净的目录: [root@docker centos6.]# ls c68-docker.tar.xz Dockerfile Dockerfile ...

  2. docker学习笔记-06:自定义DockerFile生成镜像

    一.自定义centos的DockerFile 1.从阿里源里拉的centos镜像新建的容器实例中,没有vim编辑器和ifconfig命令,所以自定义centos的DockerFile,创建自己想要的镜 ...

  3. Docker定制容器镜像(利用Dockerfile文件)

    1.创建Dockerfile文件 新建一个目录,在里面新建一个dockerfile文件(新建一个的目录,主要是为了和以防和其它dockerfile混乱 ) [root@docker01 myfiles ...

  4. Dockerfile文件详解

    什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档.可以使用在命令行中调用任何命令. Docker通过读取Dockerfile中的指令自动生成映像. docker ...

  5. Docker(十)-Docker创建DockerFile文件

    制作Docker image 有两种方式: 使用 Docker container,直接构建容器,再导出成 image 使用. 是使用 Dockerfile,将所有动作写在文件中,再 build 成 ...

  6. 使用Dockerfile文件构建基于centOS系统的tomcat镜像

    以下是Dockerfile的内容: #基础镜像 FROM centos #维护人员信息 MAINTAINER weigs "weigs1231@gmail.com" #设置工作目录 ...

  7. dockerfile文件命令详解

    Dockerfile 一般分为四部分:基础镜像信息.维护者信息.镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释: Dockerfile的指令根据作用可以分为两种:构建指令 ...

  8. Docker学习笔记-Dockerfile文件详解

    什么是Dockerfile? Docker中有个非常重要的概念叫做--镜像(Image).Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资源.配置等文件外,还包含了一些为运 ...

  9. Dockerfile文件万字全面解析

    阅读目录 目录 阅读目录 用法 格式 Parser directives escape 环境替换 .dockerignore file FROM RUN CMD LABEL MAINTAINER EX ...

随机推荐

  1. Linux服务器内存监控—每小时检查&超出发送邮件&重启占用最高的Java程式

    简介与优点 使用该脚本能自行判断系统内存使用情况是否超出设定百分比 能在超出预警值时执行重启程式的操作 能记录重启过程,并将具体LOG邮件发送给指定收信人 可以设定Crontab排程,达成每隔一段时间 ...

  2. 过万 star 高星项目的秘密——GitHub 热点速览 Vol.39

    作者:HelloGitHub-小鱼干 虽然国外十一并不过国庆,但是本周的 GitHub 也稍显疲软,GitHub 周榜的获 star 超过 1k 的项目寥寥无几,本周新开源的项目更是屈指可数.用 C ...

  3. Centos-转换或复制文件-dd

    dd 转换或复制文件,同时可以对设备进行备份 相关选项 if 输入文件,可以是设备 of   输出文件,可以是输出设备 bs   指定一个block大小,默认为 512字节 count  指定bs数量

  4. [vue-webpack-template] webpack配置全局less引入

    1. 项目模板webpack vue init webpack <项目名> 2. 安装依赖 除了less所需的less less-loader两个包以外,还需要安装style-resour ...

  5. 设备通讯——RS232

    RS232的接口有两种--一种公头.一种母头,两种头的引脚是有区别的 MAX232电路图: 注意:串口通讯需要交叉接线.

  6. Mysql的Sql语句优化

    在Mysql中执行Sql语句经常会遇到有的语句执行时间特别长的情况,出现了这种情况我们就需要静下心分析分析. 首先,我们需要确定系统中哪些语句执行时间比较长.这个可以使用Mysql的慢日志来跟踪.下面 ...

  7. shell-的特殊变量-难点理论

    一:shell的特殊变量-难点理论  1. $*和$@的区别例子     $* 将所有的命令行所有参数视为单个字符串,等同于"$1$2$3"     $@ 将命令行每个参数视为单独 ...

  8. Linux操作系统(第二版)(RHEL 8/CentOS 8)——勘误表

    Linux操作系统(第二版)(RHEL 8/CentOS 8)--勘误表 http://www.tup.tsinghua.edu.cn/booksCenter/book_08172501.html 本 ...

  9. 1.ffmpeg、ffplay、ffprobe命令使用

    1.学前知识 1.1视频码率值 码率公式: 码率(kbps)=文件大小(KB)*8/时间(秒) 所以码率和视频文件大小成正比的,不过码率超过一定值后,人眼是看不出效果的. 接下来,我们便先来学习ffm ...

  10. linux-查看内核

    [root@localhost vagrant]# uname -r 3.10.0-1127.19.1.el7.x86_64   [root@localhost vagrant]# cat /etc/ ...