美文网首页
Dockerfile详解

Dockerfile详解

作者: sorry510 | 来源:发表于2020-04-05 16:46 被阅读0次
    • FROM 镜像名
      定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像,后续的操作都是基于 nginx
    FROM nginx
    
    • RUN:在docker build时,执行命令行命令
    1. shell 格式:
      RUN <命令行命令>
      <命令行命令> 等同于,在终端操作的 shell 命令。
    2. exec 格式:
      RUN ["可执行文件", "参数1", "参数2"]
      RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline
    • COPY 复制指令,从上下文目录中复制文件或者目录到容器里指定路径
    COPY [--chown=<user>:<group>] <源路径1>...  <目标路径>
    COPY [--chown=<user>:<group>] ["<源路径1>",...  "<目标路径>"]
    
    COPY hom* /mydir/
    COPY hom?.txt /mydir/
    
    • CMD 用于docker run 时运行程序

    • ENTRYPOINT 搭配 CMD 命令使用:一般是变参才会使用 CMD ,这里的 CMD 等于是在给 ENTRYPOINT 传参

    ENTRYPOINT ["nginx", "-c"] # 定参
    CMD ["/etc/nginx/nginx.conf"] # 变参 
    1、不传参运行
    $ docker run  nginx:test
    容器内会默认运行以下命令,启动主进程。
    nginx -c /etc/nginx/nginx.conf
    2、传参运行
    $ docker run  nginx:test -c /etc/nginx/new.conf
    容器内会默认运行以下命令,启动主进程(/etc/nginx/new.conf:假设容器内已有此文件)
    nginx -c /etc/nginx/new.conf
    
    • ENV 设置变量

    ENV <key> <value>
    ENV <key1>=<value1> <key2>=<value2>...

    ENV NODE_VERSION 7.2.0
    使用 $ NODE_VERSION 获取变量
    
    • ARG 设置变量,只作用于build阶段

    • VOLUME 定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷

    VOLUME ["<路径1>", "<路径2>"...]
    VOLUME <路径>

    在启动容器docker run 的时候,我们可以通过-v 参数修改挂载点

    • WORKDIR 指定工作目录。用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在。

    WORKDIR <工作目录路径>

    • USER 用于指定执行后续命令的用户和用户组,这边只是切换后续命令执行的用户(用户和用户组必须提前已经存在)

    USER <用户名>[:<用户组>]

    相关文章

      网友评论

          本文标题:Dockerfile详解

          本文链接:https://www.haomeiwen.com/subject/kiyuphtx.html