zoukankan      html  css  js  c++  java
  • DockerFile体系构建(保留字指令)

    保留字指令

    FROM       --基础镜像,当前镜像是基于那个镜像的

    MAINTAINER    --镜像维护者的名字和邮件地址

    RUN        --容器构建时需要运行的命令

    EXPOSE      --当前容器对外暴露的端口

    WORKDR       --指定在创建容器后,终端默认登录的进来工作目录,一个落脚点

    ENV             --用来构建镜像过程中设置环境变量

    ADD        --将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tae压缩包

    COPY        --类似ADD,拷贝文件和目录到镜像。将从构建上下文目录<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置

    VOLUME     --容器数据卷,用于数据保存和持久化的命令

    CMD            --指定一个容器启动时要运行的命令。DockerFile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run 之后的参数替换

    ENTRYPOINT   --指定一个容器启动时要运行的命令。ENTRYPOINT和CMD一样,都是在指定容器启动程序及参数

    ONBUILD     --当构建一个被继承的DockerFile运行命令,父镜像在被继承后父镜像的onbuild被触发

     案例1

    Base 镜像(scratch)

    Docker Hub中 99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的

    自定义镜像mycentos

    官网拉下来的 centos 默认路径是 / ,不支持 vim 不支持 ifconfig

    目标:

    我们自定义 mycentos目的使我们自己的镜像具备如下:

      登录后的默认路径

      vim编辑器

      查看网络配置ifconfig支持

    1.编写

    准备Dockerfile文件

    mycentos内容Dockerfile

    FROM centos
    MAINTAINER sw<sw@126.com>
    
    ENV MYPATH /usr/local
    WORKDIR $MYPATH
    
    RUN yum -y install vim
    RUN yum -y install net-tools
    
    EXPOSE 80
    
    CMD echo $MYPATH
    CMD echo "success--------------ok"
    CMD /bin/bash

    2.构建

    docker build -f DockerFile -t 新镜像名字:TAG .

     查看一下我们制作的镜像

    docker images

    3.运行

    docker run -it mycentos:1.3

    注; 我们可以看到,自定义的镜像 默认路径发生了改变,并且支持 vim 与 ifconfig

    4.列出镜像的变更历史

    docker history 6d493064c6ca

     案例2

    制作CMD版可以查询IP信息的容器

    1.编写

    准备Dockerfile文件

    mycentos01内容Dockerfile

    FROM centos
    RUN yum install -y curl
    CMD ["curl", "-s", "https://ip.cn"]

    2.构建

    docker build -f ./mycentos01 -t myip .

    3.运行

    docker run -it myip

     如果我们要添加一个参数

    这时我们就需要使用 ENTRYPOINT 而不能使用 CMD

    1.编写

    重新编写DockerFile 文件

    FROM centos
    RUN yum install -y curl
    ENTRYPOINT  ["curl", "-s", "https://ip.cn"]

    2.构建与运行

  • 相关阅读:
    js 遍历数组对象求和
    小程序使用微信地址or小程序跳转设置页
    css内容渐入效果实现
    flutter实现文字超出最大宽度显示省略号
    flutter查看安全码SHA1
    Uncaught (in promise)
    小程序iphone蒙层滚动穿透
    map中使用箭头函数遇到的坑
    骨架屏css样式
    javascript(js)反转字符串
  • 原文地址:https://www.cnblogs.com/shangwei/p/15588635.html
Copyright © 2011-2022 走看看