zoukankan      html  css  js  c++  java
  • Dockerfile详解

    Docker instructions

    • FROM

    • FROM指令是最重要的一个且必须为Dockerfile文件开篇的第一个非注释行,用于为映像文件构建过程指  定基准镜像,后续的指令运行与此基准镜像所提供的运行环境。

    • 实践中,基准镜像可以是任何可用镜像文件,默认情况下,docker build会在docker主机上查找指定的  镜像文件,在其不存在时,则会从Docker Hub Registry上拉取所需要的镜像文件

    • 如果找不到指定的镜像文件,Docker build会返回一个错误信息

      • Syntax

        • FROM <repository>[:<tag>]或

        • FROM <repository>@<digest>

          • <repository>:指定作为base image的名称

          • <tag>: base image的标签,为可选项,默认为latest;

    • MAINTAINER(depreacred) #较新版本中可以使用LABEL 采用K:V格式

      •  用于让Dockerfile制作者提供本人的详细信息

      •  Docker并不限制MAINTAINER指令可出现的位置,但是推荐将其放置于FROM指令之后

        • Syntax

          • MAINTAINER <authtor>

            • <authtor>可以是任何文本信息,约定俗成使用作者笔字及邮箱
    • COPY
      • 用于从Docker主机复制文件至创建的新映像文件
      • Syxtax
        • COPY <scr>...<dest>或
        • COPY["<src>"..."<dest>"]
          • <src>:要复制的源文件或目录,支持使用通配符;
          • <dest>:目标路径,即正在创建的image的文件系统路径;建议为<dest>使用绝对路径,否则,COPY指定则为WORKDIR为其起始路径;
        • 注意:在路径中有空白字符时,通常使用第二种格式  
      • 文件复制准则
        • <src>必须是build上下文中的路径,不能是其父目录中的文件;
        • 如果<src>是目录,则其内部文件或子目录会被递归复制,但<src>目录自身不会被复制;
        • 如果指定了多个<src>,或在<src>中使用了通配符,则<dest>必须是一个目录,且必须以 / 结尾;
        • 如果<desc>不存在,会被自动创建,这包括其父目录路径。

         接下来创建一个dockerfile工作目录,开始写一个简单的dockerfile

        

    [root@node1 ~]# mkdir images 
    [root@node1 ~]# cd images/
    [root@node1 images]# vim Dockerfile
            # Description: test image
            FROM busybox:latest
            MAINTAINER "SANDIAN <sandian@node1.com>"
            #LABEL maintainer = "SANDIAN <sandian@node1.com>"
            COPY index.html /data/web/html/
    #创建一个index.html文件
    [root@node1 images]# vim index.html
                <h1>Dockerfile for node1<h1>
    #接下来我们就可以构建镜像

     [root@node1 images]# docker build -t httpd:v0-1 ./

     #验证

      

    [root@node1 images]# docker run --name web1 --rm httpd:v0-1 cat /data/web/html/index.html
      <h1>Dockerfile for node1<h1>


      

        

  • 相关阅读:
    C#中的String与string
    类和结构的异同点?
    HTTP 无状态啊无状态啊
    重载运算符
    Lambda与委托
    Js与正则表达式
    字符函数PATINDEX()与STUFF()
    C#中的托管与非托管
    原码,反码,补码
    日期函数与转型
  • 原文地址:https://www.cnblogs.com/sandiandian/p/9790285.html
Copyright © 2011-2022 走看看