docker-Dockerfile文件详解

Dockerfile文件详解mysql

  • FROM //指定基于哪一个基础镜像

格式 FROM <image> 或 FROM <image>:<tag>
示例:linux

FROM centos
FROM centos:latest
  • MAINTAINER //指定做者信息

格式 MAINTAINER <name>
示例:nginx

MAINTAINER apeng apeng@apenglinux.com
  • RUN //镜像操做指令

格式 RUN <command> 或 RUN ["executable","param1","param2"]
示例:sql

RUN yum install httpd
RUN ['/bin/bash',"-c","echo hello"]
  • CMD
    CMD ["executable","param1","param2"]
    CMD command param1 apram2
    CMD ["param1","param2"]
    示例:
CMD ["/bin/bash","/usr/local/nginx/sbin/nginx","-c","/usr/local/nginx/conf/nginx.conf"]
  • EXPOSE
    格式为 EXPOSE <port>[<port>...]
    示例:docker

    //指定要映射出去的端口
    // -P 自动分配端口
    // -p 指定具体的端口
    EXPOSE 22 80 9000
  • ENV

格式 ENV <key> <value>
示例:centos

ENV PATH /usr/local/mysql/bin:$PATH
  • ADD
    格式 add <src><dest>bash

    ADD <conf/vhosts></usr/local/nginx/conf>
  • COPY

格式同ADD
不支持urlide

  • ENTRYPOINT

容器启动时要执行的命令,它和CMD很像,也是有一条生效,若是写多个只有一条有效。和CMD不一样是:
CMD是能够被docker run指令覆盖的,而ENTRYPOINT不能覆盖
如,容器名为 apeng
咱们在Dockerfile中指定以下CMD
CMD ["/bin/echo","test"]
启动容器的命令是docker run -it apeng /bin/bash 什么都不输出
ENTRYPOINT不会覆盖,并且会比CMD或者docker run指定的命令要靠前执行
ENTRYPOINT ["echo","test"]
docker run -it apeng 123
则会输出 test 123,这至关于要执行命令echo test 123url

  • VOLUME

格式 VOLUME ["/data"]
建立一个能够从本机或其余容器挂载的挂载点code

  • USER

格式 USER daemon
指定运行容器的用户

  • WORKDIR

格式 WORKDIR /path/to/workdir为后续的RUN、CMD、ENTRYPOINT指定工做目录

相关文章
相关标签/搜索