zoukankan      html  css  js  c++  java
  • 014、镜像的缓存特性(2019-01-03 周四)

     
     
    构建centos-wget 镜像前本地没有缓存centos镜像,在构建的第一步需要dokcer pull centos镜像
     
    root@docker-lab:~/docker# cat Dockerfile
    FROM centos
    RUN yum install -y wget
    root@docker-lab:~/docker# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    root@docker-lab:~/111# docker build  -t centos-wget .     
    Sending build context to Docker daemon  2.048kB
    Step 1/2 : FROM centos
    latest: Pulling from library/centos
    a02a4930cb5d: Pull complete
    Digest: sha256:365fc7f33107869dfcf2b3ba220ce0aa42e16d3f8e8b3c21d72af1ee622f0cf0
    Status: Downloaded newer image for centos:latest
    ---> 1e1148e4cc2c
    Step 2/2 : RUN yum install -y wget
    .
    .
    .
    .
     
    构建centos-wget 镜像前本地有缓存centos镜像,在构建的第一步直接使用本地缓存,无需docker pull
     
    root@docker-lab:~/docker# cat Dockerfile
    FROM centos
    RUN yum install -y wget
    root@docker-lab:~/docker# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    root@docker-lab:~/docker# docker pull centos
    Using default tag: latest
    latest: Pulling from library/centos
    a02a4930cb5d: Pull complete
    Digest: sha256:38777a4106f0072649128ea4236241345a3ed21c55abbbd53bad5342549f6126
    Status: Downloaded newer image for centos:latest
    root@docker-lab:~/docker# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    centos              latest              1e1148e4cc2c        4 weeks ago         202MB
    root@docker-lab:~/docker# docker build -t centos-wget .
    Sending build context to Docker daemon  2.048kB
    Step 1/2 : FROM centos
    ---> 1e1148e4cc2c
    Step 2/2 : RUN yum install -y wget
    .
    .
    .
    .
     
    继续构建一个新的镜像,比centos-wget多执行一个uptime,可以看到第一步和第二步直接使用的缓存,并未重新构建
     
    root@docker-lab:~/docker# cat Dockerfile
    FROM centos
    RUN yum install -y wget
    RUN uptime
    root@docker-lab:~/docker# docker build -t centos-uptime .
    Sending build context to Docker daemon  2.048kB
    Step 1/3 : FROM centos
    ---> 1e1148e4cc2c
    Step 2/3 : RUN yum install -y wget
    ---> Using cache
    ---> 31093d4c7d97
    Step 3/3 : RUN uptime
    ---> Running in 303cb5e38dd3
    16:35:42 up 203 days,  7:58,  0 users,  load average: 0.00, 0.00, 0.00
    Removing intermediate container 303cb5e38dd3
    ---> cb7f8bec5d08
    Successfully built cb7f8bec5d08
    Successfully tagged centos-uptime:latest
    root@docker-lab:~/docker# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    centos-uptime       latest              cb7f8bec5d08        11 seconds ago      272MB
    centos-wget         latest              31093d4c7d97        7 minutes ago       272MB
    centos              latest              1e1148e4cc2c        4 weeks ago         202MB
     
    如果将yum和uptime两个对调,则不会使用之前的 centos-wget 镜像缓存
     
    root@docker-lab:~/docker# cat Dockerfile
    FROM centos
    RUN uptime
    RUN yum install -y wget
    root@docker-lab:~/docker# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    centos-uptime       latest              cb7f8bec5d08        5 minutes ago       272MB
    centos-wget         latest              31093d4c7d97        12 minutes ago      272MB
    centos              latest              1e1148e4cc2c        4 weeks ago         202MB
    root@docker-lab:~/docker# docker build -t centos-test .
    Sending build context to Docker daemon  2.048kB
    Step 1/3 : FROM centos
    ---> 1e1148e4cc2c
    Step 2/3 : RUN uptime
    ---> Running in 1724b8f64a50
    16:41:11 up 203 days,  8:03,  0 users,  load average: 0.00, 0.02, 0.00
    Removing intermediate container 1724b8f64a50
    ---> 91a208dedb3d
    Step 3/3 : RUN yum install -y wget
    ---> Running in 85f7f29637d5
    Loaded plugins: fastestmirror, ovl
    Determining fastest mirrors
    * base: mirrors.huaweicloud.com
    * extras: mirrors.huaweicloud.com
    * updates: mirrors.huaweicloud.com
    Resolving Dependencies
    --> Running transaction check
    ---> Package wget.x86_64 0:1.14-18.el7 will be installed
    --> Finished Dependency Resolution
    .
    .
    .
    .
    root@docker-lab:~/docker# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
    centos-test         latest              fc8b11ebfd31        About a minute ago   272MB
    centos-uptime       latest              cb7f8bec5d08        7 minutes ago        272MB
    centos-wget         latest              31093d4c7d97        14 minutes ago       272MB
    centos              latest              1e1148e4cc2c        4 weeks ago          202MB
     
     
    总结:
        1、构建镜像时,FROM 中的镜像如果本地有,就会直接使用本地缓存
        2、构建镜像时,如果Dockerfile前N行与之前某镜像构建时Dockerfile的前N行一样,那将直接使用之前镜像中的层,不比从头开始构建。除非在docker build 中添加 --no-cache 参数
        
     
     
  • 相关阅读:
    Xshell学习第九课:数组与字符串
    Xshell学习第八课:函数
    Xshell学习第七课:sed语句
    Xshell学习第六课:read与for语句循环
    Xshell学习第五课:if判断语句
    Xshell学习第四课:grep与正则表达式
    Xshell学习第三课:编程原理
    Xshell学习第二课:重定向和管道符
    iOS中坐标转换
    iOS工作笔记(十五)
  • 原文地址:https://www.cnblogs.com/www1707/p/10217746.html
Copyright © 2011-2022 走看看