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的相关命令就记完了
浙公网安备 33010602011771号