• 云计算_Dockerfile流程


    基本内容

     ${variable:-word}表示如果variable设置,则结果将是该值。如果variable未设置,word则将是结果。
         如${variable:-word},表示如果变量值存在,就使用原来的变量,
     	                    变量为空时,就使用word的值作为变量的值,
     ${variable:+word}表示如果variable设置则为word结果,否则为空字符串。
     .dcokerignore:把文件路径写入到.dockerignore,对应的路径将不会被打包到新镜像
    

    Dockerfile指令

      FROM
      COPY ADD ADD支持使用 TAR文件和 URL路径
      CMD、ENTRYPOINT
      只能用于 FROM 指令中
      ENV  ARG  ARG用于指定传递给构建运行时的变量-构建时变量,镜像建立完成后就失效
                ARG变量不会像ENV变量那样持久化到构建好的镜像中--ARG也被称为构建时变量
    			image被创建和container启动之后,无效
      WORKDIR   EXPOSE  USER
    

    示例

     FROM test/dock:v1  as RunData
     COPY scripts/entrypoint.sh /entrypoint.sh
     ARG http_proxy
     ARG https_proxy
     RUN apt-get update && apt-get install --no-install-recommends -y \
         &&  python-rosdep \
     	 && mkdir -p /opt/test  \
         && rm -rf /var/lib/apt/lists/*
     RUN apt-get update	\ 
        && git config --global http.proxy $http_proxy \
        && git config --global https.proxy $http_proxy  \
        && git clone https://github.com/test \
        && git config --global --unset http.proxy \
        && git config --global --unset https.proxy \	 
    	
     FROM test/dock:v1 as Builder
     COPY --from=RunData /opt/test/ /opt/test/
     COPY --from=RunData /entrypoint.sh /entrypoint.sh
     ENTRYPOINT '/entrypoint.sh'
    

    docker build 命令

     docker build 命令用于使用 Dockerfile 创建镜像
       说明 --rm :设置镜像成功后删除中间容器
        -t , --tag: 镜像的名字及标签,通常 name:tag 或者 name 格式;
    	--build-arg=[] :设置镜像创建时的变量
    	 --no-cache=true来强制重新生成中间镜像 Docker 一开始的设计既考虑了外部依赖的问题,用户可以使用参数 --no-cache 确保获取最新的外部依赖
    	 如RUN apt-get update,那么随着时间的推移,基于同一个基础镜像,一年的 apt-get update 和一年后的 apt-get update, 
    	 由于软件源软件的更新,从而导致产生的镜像理论上应该不同。
    	 如果继续使用 cache 机制,将存在不满足用户需求的情况
    	 
    
      docker build -t  test:v1
            --no-cache --rm\
            --build-arg NAMR_ID=exp\
    		--build-arg http_proxy="10.10.10.11" \
            --build-arg https_proxy="10.10.10.11" \
            --add-host  test.com:10.10.10.10\
            .
    

    检查

     docker inspect container_id
     docker  history 	 
    

    docker run 命令

    说明: -i: 以交互模式运行容器,通常与 -t 同时使用 -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    docker run /bin/bash \
      --entrypoint  ""\
      --gpus all \
      -it \
      -e user_id=001 \
      -v /data:/data \
      -w /test \
      --name "test" \
      test:v1
    

    Linux

      01.unset  http_proxy  unset https_proxy,
      02.export  http_proxy="" ,问题未解;
      03. /etc/enviroment  中的代理去掉
  • 相关阅读:
    《Java程序设计》第七次学习总结
    《Java程序设计》第六次学习总结
    实验二:Java面向对象程序设计
    《信息安全系统设计基础》第二次学习总结
    《信息安全系统设计基础+Linux 内核分析》第一次学习总结
    《Java程序设计》第五次学习总结
    《Java程序设计》第四次学习总结
    《Java程序设计》第三次学习总结
    next_permutation 函数
    POJ 3268 (dijkstra算法)
  • 原文地址:https://www.cnblogs.com/ytwang/p/16382880.html
Copyright © 2020-2023  润新知