文章标题

来源:互联网 发布:我知我师我爱我师ppt 编辑:程序博客网 时间:2024/05/01 02:57

编写Dockerfile

命令

  • FROM (指定基础image)
    FROM <image>:<tag>
    例:FROM ubuntu:14.04

  • MAINTAINER (指定image创建者信息)
    MAINTAINER <name>
    例:MAINTAINER bbman

  • RUN (在创建image时会运行的指令,可以写多条)
    RUN <command>
    例:如果基础image是ubuntu,需要安装maven时命令为,RUN apt-get install maven -y

  • ADD (向容器内添加文件或目录)
    ADD <src> <dst>
    例:ADD src/ /app/src/

  • CMD (启动容器后默认执行的命令,会被docker命令行传入的参数覆盖,最后一个生效)
    CMD ["executable", "param1", "param2"]
    CMD command param1 param2
    例:CMD [“/bin/echo”, “this is a echo test ”]

  • ENTRYPOINT (与CMD类似,如果CMD 传入的参数里,没有可执行文件,则这些参数就作为entrypoint的参数,
    如果传入的参数里,包含可执行文件,则entrypoint 不执行)
    ENTRYPOINT ["executable", "param1", "param2"]
    ENTRYPOINT command param1 param2

  • WORKDIR (设置RUN,CMD, ENTRYPOINT命令的工作路径)
    WORKDIR /path/to/work/dir

  • EXPOSE (指定对外开放的端口)
    EXPOSE <port> [<port>...]
    例:EXPOSE 80 3306开放 80 与 3306 端口

  • VOLUME (使容器中的一个目录具有持久化存储数据的功能,该目录可以被容器本身使用,也可以共享给其他容器使用)
    VOLUME <mountpoint>
    例:VOLUME ["/tmp/data"]

  • EVN (设置环境变量)
    EVN <key> <value>

一个将spring-boot 打包为 image 的示例
链接

FROM frolvlad/alpine-oraclejdk8:slimVOLUME /tmpADD gs-spring-boot-docker-0.1.0.jar app.jarRUN sh -c 'touch /app.jar'ENV JAVA_OPTS=""ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
0 0