docker8 dockerFile

docker file 允许我们自定义docker image 的层次结构,像项目的配置文件一样可以很添晰的表达要构建的image

docker file 的执行方工有几种:

docker build -f /path/to/a/Dockerfile .

docker build -t shykes/myapp .

docker build -t shykes/myapp:1.0.2 -t shykes/myapp:latest .

 

dockerfile 常用的一些指定

# 用于一些评论,注释

 

FROM imageName

以哪一个镜像为基础开始构建

 

# escape=\ (backslash)  

以哪个符号作为分割符

 

RUN 

它有二种过行方式

RUN <command> 
RUN ["executable", "param1", "param2"] 

 

EXPOSE 端口

对外暴露哪个网络端口

ENV

定义一些系统变量,如:

ENV <key> <value>
ENV <key>=<value> ...

ADD

添加某个文件到镜像中

add /app.jar /app.jar 添加app.jar

ENTRYPOINT

程序入口点,镜像运行

docker run nginx

自动执行 entrypoint 所指定的命令或脚本

CMD 

docker 镜像运行时,如果不提供执行命令或脚本,则默认执行cmd指定的参数

 

CMD 与 ENTRYPOINT 的区别

CMD 可以在docker run 只有命令没有指定命令或脚本时,才会生效

ENTRYPOINT 无论docker run 有没有命令没有指定命令或脚本时,都会生效

 

 

Volume 

映射容器卷

 

 

 

MAINTAINER <name>

设置镜像构建者的一些相关信息

 

举个例子:

FROM windowsservercore

COPY testfile.txt c:\

RUN dir c:\

它的运行结果就是

 

 再举个例子:

FROM java:8 以java:8 为基础image进行构建
VOLUME /tmp 添加容器郑

ADD crm.springboot-0.1.0.jar /app.jar 添加app.jar

EXPOSE 8080 暴露8080端口

ENTRYPOINT java -jar -Dserver.port=8080 /app.jar docker run 镜像时,执行 java -jar -Dserver.port=8080 /app.jar docker run (不可修改)

 

到此,docker engine的相关命令就记完了

 

posted @ 2016-12-05 14:32  三无宋老师  阅读(137)  评论(0)    收藏  举报