zoukankan      html  css  js  c++  java
  • Docker——Dockerfile指令

     1.FROM 指定基础镜像
    
        所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。
      就像我们之前运行了一个redis镜像的容器,再进行修改一样,基础镜像是必须指定的。
      而 FROM 就是指定基础镜像,因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。 在 Docker Store 上有非常多的高质量的官方镜像,有可以直接拿来使用的服务类的镜像,如nginx 、 redis 、 mongo 、 mysql 、 httpd 、 php 、 tomcat 等;
      如果没有找到对应服务的镜像,官方镜像中还提供了一些更为基础的操作系统镜像, 如ubuntu 、 debian 、 centos、 alpine 等这些操作系统的软件库 2、RUN 执行命令 RUN 指令是用来执行命令行命令的。 格式:
        RUN <command> (类似/bin/sh -cshell格式)
    
          RUN ["executable", "param1", "param2"] (exec格式)
    类似shell脚本风格的:
         FROM alpine
            RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
            RUN apk add  gcc g++ libc-dev  wget vim  openssl-dev make  linux-headers 
            RUN mkdir -p /usr/src/redis
            RUN cd /usr/src/redis
            RUN wget -O redis-4.0.11.tar.gz  "http://download.redis.io/releases/redis-4.0.11.tar.gz"
            RUN tar -xzf redis-4.0.11.tar.gz -C /usr/src/redis
            RUN cd /usr/src/redis/redis-4.0.11 &&  make && make PREFIX=/usr/local/redis install
    之前说过,Dockerfile 中每一个指令都会建立一层, RUN 也不例外。
    每一个 RUN 的行为,就和刚才我们手工建立镜像的过程一样:新建立一层,
    在其上执行这些命令,执行结束后, commit这一层的修改,构成新的镜像。使用 Dockerfile 定制镜像 而上面的这种写法,创建了很多层镜像。
    这是完全没有意义的,而且很多运行时不需要的东西,都被装进了镜像里,比如编译环境、更新的软件包等等。
    结果就是产生非常臃肿、非常多层的镜像,不仅仅增加了构建部署的时间,也很容易出错。 这是很多初学 Docker 的人常犯的一个错误。
    Union FS是有最大层数限制的,比如 AUFS,曾经是最大不得超过 42 层,现在是不得超过 127 层




    注重细节——关注底层——注重细节——关注底层——注重细节——关注底层——注重细节——关注底层——注重细节——关注底层
  • 相关阅读:
    Access sql语句创建表及字段类型
    30条HTML代码编写指南 for入门者
    21 个HTML网页转RSS Feeds的工具
    51 个漂亮的电子商务网站设计分享
    如何更改列表项前的New标记的天数设置(daystoshownewicon )
    如何使Layouts里的页面应用站点母板页
    SPCAMLEditor使用系列(2)利用SPCAMLEditor,实现列表顺序号。
    在SharePoint中使用自定义的服务器控件(Web Control)
    开发支持三级目录的导航菜单
    CAML查询时用户类型字段的处理
  • 原文地址:https://www.cnblogs.com/PJG20/p/13215714.html
Copyright © 2011-2022 走看看